Sphinx使用SPH_MATCH_ANY忽略SetFieldWeights和SetSortMode

时间:2011-01-31 09:02:30

标签: search sphinx

嘿伙计们,我试图按照我想要的方式通过sphinx 0.99订购我的结果,但它不起作用。

我目前正在使用此

$cl->SetMatchMode ( SPH_MATCH_ANY );
$cl->SetRankingMode ( SPH_RANK_PROXIMITY_BM25 );
$cl->SetFieldWeights ( array ( "item_title"=>100,"item_publish_date"=>99 ) );
$cl->SetSortMode ( SPH_SORT_EXTENDED  , "@weight DESC,item_publish_date DESC" );
$cl->SetLimits(0, 330);

它会提取所有结果,但它会完全忽略item_publish_date值。

如果我使用SPH_MATCH_BOOLEAN而不是SPH_MATCH_ANY,它确实以我想要的顺序显示结果,但是它会过多地限制结果,因为类似的项目将被完全忽略,这就是为什么我需要使用SPH_MATCH_ANY来显示最多结果

所以我的问题是,如何使用SPH_MATCH_ANY考虑item_publish_date?

1 个答案:

答案 0 :(得分:0)

我认为item_publish_date不是文本字段,因此您无需在SetFieldWeights方法中使用它,因为它没有任何意义。其次,SPH_MATCH_ANY排名者使用额外的匹配单词计算权重,而不仅仅是匹配。这就是为什么你需要进行一些测试并在不同的搜索中观察weight参数。

以下是关于weighting in Sphinx

的内容