2011-01-31 72 views
1

嘿傢伙,即時通訊嘗試以我想通過sphinx 0.99的方式排列我的結果,但它不工作。使用SPH_MATCH_ANY的獅身人面像忽略SetFieldWeights和SetSortMode

即時通訊目前採用這種

$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_ANY的SPH_MATCH_BOOLEAN isntead,它顯示我想要的順序結果,但隨後將結果限制太多,因爲類似的項目將被完全忽略,這就是爲什麼我需要使用SPH_MATCH_ANY展現大部分結果。

所以我的問題是,我怎樣才能在item_publish_date中使用SPH_MATCH_ANY?

回答

0

我認爲item_publish_date不是一個文本字段,所以你不需要在SetFieldWeights方法中使用它,因爲它沒有任何意義。第二,SPH_MATCH_ANY排名計算權重使用額外的計數匹配的單詞,不僅匹配。這就是爲什麼你需要做一些測試,並在不同的搜索中觀察weight參數。

這裏有一些東西閱讀關於weighting in Sphinx