Mysql 斯芬克斯与用户排名

Mysql 斯芬克斯与用户排名,mysql,full-text-search,sphinx,Mysql,Full Text Search,Sphinx,我有下表 id, text, rank 每次我插入一篇文章,我都会把排名设为1 1, blah blah, 1 然后,如果超过一个人阅读此文本,则排名将增加一 因此,我需要做的是斯芬克斯搜索以下2个文本的基础上的关键字和排名 1, blah blah, 2 2, blah blah blah, 6 因此,如果用户搜索关键字“blah”,那么结果应该是 2, blah blah blah, 6 //first as the ranking is higher 1, blah blah, 2

我有下表

id, text, rank
每次我插入一篇文章,我都会把排名设为1

1, blah blah, 1
然后,如果超过一个人阅读此文本,则排名将增加一

因此,我需要做的是斯芬克斯搜索以下2个文本的基础上的关键字和排名

1, blah blah, 2
2, blah blah blah, 6
因此,如果用户搜索关键字“blah”,那么结果应该是

2, blah blah blah, 6 //first as the ranking is higher
1, blah blah, 2
我不知道怎么做,我是否需要在sphinx中搜索关键字,然后根据排名对文档结果进行排序?这不好

或者,斯芬克斯中有什么东西可以解决这类问题吗


我一直在阅读斯芬克斯文档中的排名,但它似乎与文本本身和单词的权重有关

使用Sphinx,可以将“rank”设置为索引中的整数属性

属性直接存储在索引中,可用于排序、筛选等

因此,您可以根据属性(而不是计算的全文权重)对结果进行排序


因此,如果我理解正确,我需要更新数据库中的排名字段,然后根据该字段对搜索进行排序?顺便说一句,在sql更新之后是否需要重新编制索引?您需要在源数据更改或sql更改时重新生成索引。Ie索引器构建一个静态索引。要应用更改,已再次构建索引。好的,那么是否可以在索引中设置attr,然后不更新数据库,而是更新索引中attr的值?嗯,有:)因此可以继续更新attribte,我也看到了这一点