2013-07-23 27 views
0

我有一个名为“tags”的字段,它有值(比如说)“Music,Art,Sports,Food”等。我如何在PHP-Sphinx中使用这个字段的setFilter函数。我知道它必须是一个整数,并且应该在PHP中用作数组。所以,如果我使用数字字段作为标签,那么分隔符(在这种情况下是逗号)如何呢?目前,我使用“sql_attr_multi”像这样...无法使用Sphinx MVA sql_attr_multi

sql_attr_multi = uint tags from field 

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

任何帮助,高度赞赏。

回答

0

那么使用MVA,建议您已经为每个标签设置了unique-id。

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

如果您有一个包含文本的文本列,将会更容易使用一个字段。可以通过主文本查询中的字段轻松过滤。

香脆奶油@tags食品

例如(这就是扩展模式查询)

(但是就像你可以用属性字段不能做分组)

+0

感谢您的答复。但是,我根本不理解这一点。可能是我的问题不清楚。我将更详细地阐述这种情况,例如http://stackoverflow.com/questions/17827965/sphinx-multi-value-attribute-filter任何帮助将不胜感激。 – Jay

相关问题