我认为这是相当常见的情况,但只是找不出和找到任何有关它的信息。
假设我有以下文本:
我找不出查询,它按以下顺序返回文本:
( 1)首先,所有包含三种“狗”、“猫”和“老鼠”的文字,
2)所有包含每对(“狗”、“猫”)、(“狗”、“老鼠”)、(“猫”、“老鼠”)的文本都没有具体的顺序。
3)所有包含“狗”、“猫”或“老鼠”的文本
因此,对给定文本的这种查询的结果应该是这样的(最好先缩短文本,但不一定)。
有人能帮我吗?
发布于 2018-09-26 09:19:48
一般来说,它有两个部分,匹配和排名。
对于匹配的,您只需要包含至少一个单词的文档(即接受一个带有jsut的文档)。仲裁操作符可能是最简单的方法,但其他几种方法也能工作。
... MATCH(' "dog cat mice"/1 ') 然后,您想让大多数单词(3)首先显示出来,这是关于排名 http://sphinxsearch.com/docs/current.html#ranking-overview的。
一般情况下,您可能会发现WordCount Ranker适合您的情况。
... OPTION ranker=wordcount但是阅读上面关于排名的一节,还有更详细的排名要做。
通过排名,你需要开始思考斯芬克斯如何为每个结果计算一个分数,然后将结果按降权顺序排序。(相对于“这个,那个,然后那个”)。)
编辑添加:您提到dog是一个查询术语,但是有包含dogs的文档,所以一定要查看词法和词干以说明这一点。http://sphinxsearch.com/docs/current.html#conf-morphology
https://stackoverflow.com/questions/52511121
复制相似问题