2014-06-21 86 views
2

我試圖設置一個簡單的查詢(取自用戶搜索),在當前的書目標題和作者簡單表格中查找結果。我只是用它來作爲一個測試來抓住獅身人面像一點點。獅身人面像中的部分匹配與精確匹配

我的PHP到目前爲止是這樣的:

$oSphinx->setFieldWeights(array('title' => 50, 'author' => 10)); 
$oSphinx->setMatchMode(SPH_MATCH_EXTENDED2); 
$oSphinx->setSortMode(SPH_SORT_RELEVANCE); 
$oSphinx->setRankingMode(SPH_RANK_SPH04); 
$rMatches = $oSphinx->query('Sarah J. Maas'); 

我最大綴和字長是3,所以我假設的「J」。爲了搜索目的而被刪除。我的問題是,這些2個返回結果:

薩拉J. MAASTER

薩拉·J·馬斯

它們都具有相同的權重,且都出現在數據集中的順序,所以這是訂單Sphinx返回它們。有沒有辦法在比較模糊的區域之上加權「精確」匹配?我知道這裏有一個exact_hit修飾符,但這在這裏似乎沒有任何作用(無論如何它都包含在SPH_RANK_SPH04中)。我的期望是第二個會有更高的權重,因爲「Maas」匹配結果中的整個單詞而不是子字符串,但似乎並非如此。

我使用Sphinx 2.0.4(Ubuntu 14.04 LTS Package)。

謝謝!

+0

你使用任何形態,可能是轉向'Maaster'成'Maas'? –

回答