0

我正在使用狮身人面像搜索引擎。我需要它来搜索字段中的确切单词。通常它工作正常,但有一些奇怪的异常情况。

$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

阿尔法罗密欧,159,SW Progression 1.9JTDm

这是我们字段标题的两个值,我认为两者都应该与查询匹配,但只有第一个匹配。

此外,当我搜索像 Audi A8 这样的东西时,我总是得到像 Audi A6 这样的字符串,Audi A4 也返回了。

4

0 回答 0