2013-06-20 47 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