我有一个包含电影和电视剧列表的数据库。
我建立的搜索使用Sphinx。
我使用SPH_MATCH_ANY模式,因为我希望如果有人搜索“ x战警2”,他还将找到有关“ x战警1”和“ x战警3”的条目。
我的问题是,它还会搜索带有“ 2”的条目,例如“汽车2”或“超自然季节2”。
我想告诉它不要搜索其中没有'x-men'的条目。
在MYSQL中,我会这样写:
MATCH (mname) AGAINST ('x-men') AND mname like '%x-men%'
或类似的东西。
在狮身人面像中,我尝试了这个:
$s->Query(x-men 2 "x-men",'test1');
但是它仍然搜索其中包含数字“ 2”的条目。
那我该怎么做呢?
谢谢。
最佳答案
好了,问题解决了,Sphinx论坛的一个人给了我这个解决方案:
$s->setMatchMode(SPH_MATCH_EXTENDED2);
$s->Query("(x-men | 2) x-men",test1);
$s->setRankingMode(SPH_RANK_ANY);
=)