我有一个包含电影和电视剧列表的数据库。
我建立的搜索使用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);


=)

10-07 14:01