0

我有一个名为“标签”的字段,它有值(比如)“音乐、艺术、体育、食物”等。我如何在 PHP-Sphinx 中为该字段使用 setFilter 函数。我知道它必须是一个整数,并且应该在 PHP 中用作数组。所以,如果我使用数字字段作为标签,那么分隔符(在这种情况下是逗号)呢?目前,我正在使用这样的“sql_attr_multi”……</p>

sql_attr_multi = uint tags from field

我必须根据用户选择的任何关键字(音乐、体育、食物等)过滤搜索。因此,只有 MVA 才是正确的选择。但我只是无法弄清楚,如何做到这一点。我可以将所有标签元素存储为数值并将标签字段设置为 int。但是逗号怎么样,或者我将如何将整个字符串(音乐、艺术、体育、食物)转换为整数。稍后,如何使用 PHP 调用 setFilter。

非常感谢任何帮助。

4

1 回答 1

0

使用 MVA,建议您已经为每个标签设置了唯一 ID。

如果您有一个单独的标签表(带有 PK),以及连接您的文档和标签的多对多表。(这是存储标签的一种非常常见的方式 - 以正常形式)

如果您有一个包含文本的文本列,则仅使用字段会更容易。可以轻松地按主要文本查询中的字段进行过滤。

香脆奶油@tags 食物

例如(那是扩展模式查询)

(但字段不能像使用属性那样进行分组)

于 2013-07-23T17:21:42.083 回答