Sphinx(搜索)-与关键字两次匹配的文档(三次,等等)

时间:2018-10-02 07:57:48

标签: sphinx sphinxql

是否有一种方法只能输出其中包含n个搜索词匹配项的文档?

F.e。我想输出所有包含搜索词"Pablo Picasso" | "Picasso Pablo"的文档至少两次(三次,n次)。 这样的查询看起来如何?

我当前的查询是: SELECT * FROM myIndex WHERE MATCH('"Pablo Picasso" | "Picasso Pablo"');

1 个答案:

答案 0 :(得分:0)

您可以通过权重过滤来完成此操作(例如,结果经过多次过滤后排名会更高)

但是严格的命令运算符是一个有用的技巧...

MATCH('Pablo << Pablo')

需要两次重复这个词(即一个词在另一个词之前!)


您还可以使用primoxity运算符来简化原始查询,它只是希望单词彼此靠近,比两个短语运算符更简洁

MATCH('"Pablo Picasso"~1')

...即彼此之间不超过1个字-即邻接。


将两者结合在一起。

MATCH('"Pablo Picasso"~1 << "Pablo Picasso"~1')

还有3次出现

MATCH('"Pablo Picasso"~1 << "Pablo Picasso"~1 << "Pablo Picasso"~1')