sphinx - Sphinx(搜索) - 匹配关键字两次(三次等)的文档
问题描述
有没有办法只输出包含n
搜索词匹配的文档?
Fe 我想输出包含搜索词"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')
推荐阅读
- jpa - 使用 micronaut-data-hibernate-jpa 库连接到 jpa 时出错
- reactjs - 使用 Firebase 在两个应用之间共享位置
- c# - 使用 Master.Master 上的 javascript 在任何 aspx 页面上从 Master.cs 调用方法
- c++ - 如何在安装“opencv4nodejs”模块期间修复错误
- rxjs - 有没有办法在一行中对下一个和错误回调执行 Observables 的副作用?
- macos - CGWindowsListCopyWindowInfo API 未列出 10.15 Catalina Beta 版本中的所有窗口名称
- image - Flutter Fade 图像与装饰图像
- java - onclick 侦听器在滑动布局的表面视图中不起作用
- java - 加密数据库登录信息 mySQL 连接器
- c++ - 如何迭代集合中的值
>st 使用 set >::iterator 呢?