我有一个名为“标签”的字段,它有值(比如)“音乐,艺术,体育,食物”等。我如何使用setFilter函数在PHP-Sphinx的这个字段。我知道它必须是一个整数,并且应该在PHP中用作数组。因此,如果我使用数字字段作为标记,那么分隔符(在本例中是逗号)又如何呢?目前,我像这样使用…中的"sql_attr_multi“
sql_attr_multi = uint tags from field我必须根据用户选择的任何关键字过滤搜索,音乐,体育,食物等。因此,只有MVA是正确的选择。但我就是想不通,该怎么做。我可以将所有标记元素存储为数字值,并将标记字段设置为int。但是逗号怎么办,或者我如何将整个字符串(音乐、艺术、体育、食物)转换为整数。稍后,我将如何使用PHP调用setFilter。
任何帮助都是非常感谢的。
发布于 2013-07-24 01:21:42
使用MVA,建议您已经为每个标签指定了唯一的ids。
如果你有一个单独的标签表(带有PK),多对多的表连接你的文档和标签。(这是一种非常常见的存储标签的方式--以标准形式存储)
如果您有一个包含文本的文本列,那么只使用Field会更容易一些。可以很容易地在主文本查询中按字段进行过滤。
脆奶油@标签食品
例如(这是扩展模式查询)
(但是字段不能像处理属性那样进行分组)
https://stackoverflow.com/questions/17815548
复制相似问题