嘿,伙计们,我试图通过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考虑在内?
发布于 2011-02-01 01:03:26
我认为item_publish_date不是一个文本字段,所以您不需要在SetFieldWeights方法中使用它,因为它没有任何意义。其次,SPH_MATCH_ANY排名器使用额外的匹配单词计数来计算权重,而不仅仅是匹配。这就是为什么你需要做一些测试,并在不同的搜索中观察weight参数。
这里有一些关于weighting in Sphinx的读物
https://stackoverflow.com/questions/4849082
复制相似问题