嘿伙计们,我试图按照我想要的方式通过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?
答案 0 :(得分:0)
我认为item_publish_date
不是文本字段,因此您无需在SetFieldWeights
方法中使用它,因为它没有任何意义。其次,SPH_MATCH_ANY
排名者使用额外的匹配单词计算权重,而不仅仅是匹配。这就是为什么你需要进行一些测试并在不同的搜索中观察weight
参数。
以下是关于weighting in Sphinx
的内容