我正在使用sphinx搜索引擎。我需要它来搜索字段中的确切单词。一般来说它工作正常,但有一些奇怪的异常。
$this->sphinxclient->Query('@title "Alfa Romeo 159"~3', "indexads" );
我试试这个。如果我正确理解这个搜索字段标题,字之间的边距不能大于2.我使用Sphinx的扩展语法。
$this->sphinxclient->SetArrayResult(true);
$this->sphinxclient->SetMatchMode(SPH_MATCH_EXTENDED2);
$this->sphinxclient->SetSortMode (SPH_SORT_RELEVANCE);
if($category_id>0)
$this->sphinxclient->SetFilter('category', array($category_id));
$this->sphinxclient->SetFilter('status', array(1));
$this->sphinxclient->SetLimits(0,50000);
$this->sphinxclient->setFieldWeights(array ("title"=>1000,"description"=>0));
这是我用来设置搜索的代码。我只想说过滤器绝对不会影响我想要的结果。我使用扩展语法,因为SPH_MATCH_PHRASE根本没有按照它描述的方式工作。扩展语法通常不会那么糟糕。 但搜索不会返回应与此查询匹配的所有结果。有没有其他人用搜索引擎来解决异常或者我做错了什么。这很奇怪,因为我有两个几乎相同的字段,但它只返回一个。
阿尔法罗密欧,159 SportWagon,1.9 JTDM独特
Alfa Romeo,159,SW Progression 1.9JTDm
这是我们字段标题的两个值,我认为两者都应该与Query匹配,但只有第一个匹配。
当我搜索奥迪A8之类的东西时,我总能得到像奥迪A6这样的琴弦,奥迪A4也回来了。