首页 > 解决方案 > 使用 Lucene 查找术语出现超过一定次数的文档

问题描述

有没有办法使用 Solr(或直接 Lucene)创建一个查询,该查询将查找包含超过一定次数的术语的文档?

目前,我只设法使用 SpanNearQuery 提出了一个迂回的解决方案。这可以用来说两个跨度彼此靠近,因此通过使用 n - 1 inOrder SpanNearQuerys 可以构造这样的查询,例如“term”必须出现 4 次:((“term” near “term”) near “term” ) 短期”

其中“term”是一个 SpanTermQuery,而 near 是一个 inOrder SpanNearQuery,具有较大的斜率

标签: searchsolrlucene

解决方案


termfreq函数查询用于获取术语的频率,此外,可以使用函数范围查询解析器,允许对任意函数进行范围查询或范围过滤器。

q=*&fq={!frange l=2}termfreq(category_t,'demo')

category_t上面的查询仅获取演示在字段中重复两次或更多次的那些文档。


推荐阅读