我认为这是很常见的情况,但只是无法弄清楚并找到有关它的任何信息。
说我有以下文本:
我找不到查询,该查询按以下顺序返回文本:
1)首先,所有包含所有三个“狗”,“猫”和“老鼠”的文本
2)然后以不特定顺序包含每对('dog','cat'),('dog','mice'),('cat','mice')的所有文本
3)然后所有包含“狗”,“猫”或“老鼠”中任何一个的文本
因此对给定文本的这种查询结果应该是这样的(最好是短文本,但不一定)
有人可以帮我吗?
答案 0 :(得分:0)
通常,它分为匹配和排名两部分。
对于匹配,您只需要包含至少一个单词的文档(即将接受其中一个单词的文档)。仲裁运算符可能是最简单的方法,但是其他一些方法也可以使用。
... MATCH(' "dog cat mice"/1 ')
然后,您想让第三个单词最多的单词首先显示-这与排名有关 http://sphinxsearch.com/docs/current.html#ranking-overview
通常,您可能会发现WordCount Ranker适合您的情况
... OPTION ranker=wordcount
但是请阅读上面有关排名的部分,还有很多详尽的排名需要完成。
通过排名,您需要进入思维方式,思考狮身人面像如何为每个结果计算得分,然后按降序对结果进行排序。 (与“ 此,然后那个,然后那个”相对。)
编辑以添加:您提到dog
是一个查询词,但是文档中包含dogs
,因此请务必查看形态并加以解释。
http://sphinxsearch.com/docs/current.html#conf-morphology