狮身人面像(搜索) - 匹配关键字两次(三次等)的文档



有没有办法只输出包含搜索词n匹配项的文档?

F.e.我想输出包含搜索词的所有文档至少"Pablo Picasso" | "Picasso Pablo"两(三,n(次。 这样的查询会是什么样子的?

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

您可以通过按权重过滤来做到这一点(即多次使用它的结果,排名会更高(

但是一个有用的技巧是严格顺序运算符...

MATCH('Pablo << Pablo')

将需要这个词两次(即一个在另一个之前!


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

MATCH('"Pablo Picasso"~1')

。即彼此之间的 1 个单词以内 - 即附加。


将两者结合起来..

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

并且对于这种情况

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

最新更新