【问题标题】:Finding documents with Lucene where a term occurs more than a certain number of times使用 Lucene 查找术语出现超过一定次数的文档
【发布时间】:2019-10-13 02:11:44
【问题描述】:

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

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

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

【问题讨论】:

    标签: search solr lucene


    【解决方案1】:

    termfreq function query 用于获取术语的频率,此外,Function range query parser 可用于允许对任意函数进行范围查询或范围过滤。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-26
      • 1970-01-01
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 2018-04-29
      • 2011-04-15
      • 1970-01-01
      相关资源
      最近更新 更多