2013-06-20 94 views
0

我有以下MySQL表,獅身人面像和用戶排名

​​ 每次我插入文章中,我將會把排名作爲1,像這樣

1, blah blah, 1 

那麼如果不止一個人閱讀本文的等級將增加1。

所以我需要的是根據關鍵字和排名做一個獅身人面像搜索以下2個文本。

1, blah blah, 2 
2, blah blah blah, 6 

所以如果關鍵字「嗒嗒」的用戶搜索,則結果應該是

2, blah blah blah, 6 //first as the ranking is higher 
1, blah blah, 2 

我不知道該怎麼做,我需要做在獅身人面像的關鍵字搜索然後根據排名對文檔的結果進行排序?這不好。

或者,有什麼獅身人面像可用於這種問題?

我一直在閱讀關於獅身人面像文件的排名,但它看起來像它與文本本身和單詞的重量有關。

回答

0

藉助Sphinx,您可以在索引中將'rank'設置爲整數屬性。

屬性,直接存儲在索引中,並且可以被用於排序,過濾等

所以可以然後按以下方法排序屬性(而不是由所計算的全文重量)

http://sphinxsearch.com/docs/current.html#attributes

http://sphinxsearch.com/docs/current.html#sorting-modes

+0

所以,如果我理解正確的,我需要更新的數據庫的排名字段,然後搜索應該基於分類那個領域?我需要重新索引後的SQL更新btw? – user2175831

+0

無論何時源數據更改或SQL更改,您都需要重建索引。即索引器建立一個靜態索引。要應用更改,索引必須重新構建。 – barryhunter

+0

好吧,所以有可能在索引中設置attr,然後而不是更新數據庫我會更新索引中attr的值? – user2175831