search - 使用 Lucene 查找术语出现超过一定次数的文档
问题描述
有没有办法使用 Solr(或直接 Lucene)创建一个查询,该查询将查找包含超过一定次数的术语的文档?
目前,我只设法使用 SpanNearQuery 提出了一个迂回的解决方案。这可以用来说两个跨度彼此靠近,因此通过使用 n - 1 inOrder SpanNearQuerys 可以构造这样的查询,例如“term”必须出现 4 次:((“term” near “term”) near “term” ) 短期”
其中“term”是一个 SpanTermQuery,而 near 是一个 inOrder SpanNearQuery,具有较大的斜率
解决方案
termfreq函数查询用于获取术语的频率,此外,可以使用函数范围查询解析器,允许对任意函数进行范围查询或范围过滤器。
q=*&fq={!frange l=2}termfreq(category_t,'demo')
category_t
上面的查询仅获取演示在字段中重复两次或更多次的那些文档。
推荐阅读
- inno-setup - Inno Setup:如何在从过程 InitializeWizard() 显示自定义页面之前显示许可证页面;
- docker - Bitbucket Pipelines - 如何在多个步骤中使用相同的 Docker 容器?
- arrays - JavaScript array default assignment syntax confusion
- php - 关于 Payumoney 成功 url 的问题
- sapui5 - How to extend the translation?
- html - 标记为无效属性值的最大宽度
- javascript - 如何通过单击按钮在另一个 html 页面中创建元素
- html - 使用我的布局创建响应式网站
- javascript - How to identify fabric js image objects inserted to canvas?
- android - 无法应用 BillingClient