2014-11-08 41 views
0

有一張表,其中包含站點URL。 我想以某種方式對獅身人面像結果進行排序:「關鍵字到字符串的開頭 - 更相關」靠近字符串的開頭排序匹配

「foobar.com,barfoo.com,barbarfoo.com」是關鍵字「foo 「

我曾嘗試:

$s = new SphinxClient; 
$s->setServer("localhost", 9312); 
$s->SetMatchMode(SPH_MATCH_ALL); 
$s->SetSortMode(SPH_SORT_RELEVANCE); 
$s->SetFieldWeights(array(
         'id' => 0, 
         'url' => 1000, 
        )); 
$result = $s->query("foo"); 

不幸的是我得到的結果,通過編號的順序排列。

回答

0

嗯,不要以爲獅身人面像可以直接做到這一點。有各種排名因素,但都基於單詞。

可以使用'min_prefix_len'匹配部分單詞,但不能得到'匹配發生在單詞的哪裏',以便能夠通過它進行排名。

的唯一方法也許能夠獲得與獅身人面像的工作,是使用分詞系統 http://sphinxsearch.com/blog/2013/01/29/a-new-tool-in-the-trunk-wordbreaker/

索引你的域的名稱作爲單獨的詞。希望您的域名能夠在「foo bar com」,「bar foo com」,「bar bar foo com」中正確拆分 - 然後可以按字位排序,例如min_hit_pos http://sphinxsearch.com/docs/current.html#field-factors

相關問題