【问题标题】:Sphinx search sql_attr_multi - where condition狮身人面像搜索 sql_attr_multi - where 条件
【发布时间】:2012-11-07 14:22:59
【问题描述】:

我需要设置一个索引。

sql_attr_multi = 来自查询的 uint 类别; SELECT item_id, category_id FROM connections WHERE value=2

如果我将值设置为静态,它可以正常工作。

该值是一个变量,所以我想通过过滤器分配它,但它不起作用,因为我想过滤“sql_attr_multi”而不是 $sql。

$cl->setFilter("值", array(2));

谢谢

【问题讨论】:

    标签: php mysql search sphinx


    【解决方案1】:

    setFilter 只与搜索有关( searchd 过程)。它是应用于属性的过滤器。 不能根据条件更改类别 sql_attr_multi 属性值(除非您重新索引或使用 updateAttributes)。 如果值变化不大,则为每个值创建一个 mva 属性。

    【讨论】:

    • 是的,我正在考虑,但它应该是最后的解决方案 :)
    • 也许 updateAttributes 是一个解决方案。但我想在现有的属性中添加一个条件。
    • 那行不通。这取决于那里需要什么。您是否需要搜索特定的类别和值,是否还需要对类别/值进行排序、分组?您可以创建一个 sql_joined_field 而不是 multi 并将类别 ID 与值组合(类似于 100_2 ),您将拥有一个类似于 '100_2 101_3 102_2 等的 item_id。这将允许您对 category_id 和值进行搜索。您还可以保留类别多属性以将其用于分组。
    • 哪一个?你能解释清楚一点吗?
    • 我将 mva 用于侧边菜单类别(nr 个项目)。一个项目可能属于多个类别。 cat 1 (20), cat 2 (10) 等。它工作正常,但我需要将条件附加到 sql_attr_multi 类别。也许是一种通过api传递变量的方法?
    猜你喜欢
    • 2016-10-03
    • 2015-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多