0

我有以下mysql表,

id, text, rank

每次我插入一篇文章我都会像这样将排名设为1,

1, blah blah, 1

那么如果超过一个人阅读这篇文章,排名将增加一。

所以我需要的是根据关键字和排名对以下 2 个文本进行 sphinx 搜索。

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 文档的排名,但它看起来与文本本身和单词的权重有关。

4

1 回答 1

0

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

属性,直接存储在索引中,可用于排序、过滤等。

然后可以按属性对结果进行排序(而不是按计算的全文权重)

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

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

于 2013-06-20T19:00:02.027 回答