【问题标题】:Get search word Hits ( number of occurences) per document in Lucene在 Lucene 中获取每个文档的搜索词 Hits(出现次数)
【发布时间】:2010-12-27 14:28:30
【问题描述】:

任何人都可以建议我在 Lucene 中获得每个文档的 Hits(没有出现次数)的最佳方法吗?..

【问题讨论】:

    标签: search lucene


    【解决方案1】:

    Lucene 使用基于字段而不是基于文档的索引。 为了获得每个文档的术语计数:

    1. 使用 IndexReader.document() 和 isDeleted() 遍历文档。
    2. 在文档 d 中,使用 Document.getFields() 遍历字段。
    3. 对于每个字段 f,使用 getTermFreqVector() 获取术语。
    4. 检查词向量和每个词的频率总和。
    5. 每个字段的词频总和将为您提供文档的词频向量。

    【讨论】:

    • +1。您可能必须考虑文本经历的词干和其他转换。例如,如果您在词干字段中搜索单词“beauty”,则索引中的实际术语将是“beauti”。
    【解决方案2】:

    SpanTermQuery.getSpans 将列举文档以及术语出现的位置。文档已排序,因此您可以只计算每个文档出现的次数,而忽略位置信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-22
      • 1970-01-01
      • 2020-06-27
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多