【问题标题】:Understanding Solr Doc=了解 Solr 文档=
【发布时间】:2015-12-07 05:35:09
【问题描述】:

我有两个索引文档,我试图找出其中一个高于另一个的相关性。所以我跑了DebugQuery=True 以获得解释。以下是两个文档的相关差异。

两种不同类型的文档

这可能是相关的;这些文档有两种不同的类型,我使用 *_s 字段来区分它们。所以我的字段 module_s 有两个模块 1 和 2。我的查询有:

<arr name="filter_queries">
    <str>moduleid_s:(1 OR 2)</str>
</arr>

所以我认为这不会导致问题,但我想添加此信息。

相关解释差异:

文档 1 - 模块类型 = 1

result of: 1.7325882 = score(doc=3513280,freq=1.0), 
    product of: 0.44456035 = queryWeight, 
    product of: 0.5 = boost 7.7946143 = idf(docFreq=5286,maxDocs=4721423) 0.1140686 = queryNorm 3.8973072 = fieldWeight in 3513280, 
    product of: 1.0 = tf(freq=1.0), with freq of: 1.0 = termFreq=1.0 7.7946143 = idf(docFreq=5286, maxDocs=4721423) 0.5 = fieldNorm(doc=3513280) 

文档 2 - 模块类型 = 2

result of: 0.75800735 = score(doc=174,freq=1.0), 
        product of: 0.44456035 = queryWeight, 
        product of: 0.5 = boost 7.7946143 = idf(docFreq=5286,maxDocs=4721423) 0.1140686 = queryNorm 1.7050719 = fieldWeight in 174, 
        product of: 1.0 = tf(freq=1.0), with freq of: 1.0 = termFreq=1.0 7.7946143 = idf(docFreq=5286, maxDocs=4721423) 0.21875 = fieldNorm(doc=174) 

概要和问题

如您所见,解释几乎相同。它们都具有相同的 queryWeight、boost、idf 和 queryNorm。不同的是,doc=XXX。对于文档 1,它是 351328,对于文档 2,它是 174。有人能解释一下这个数字是什么吗?它来自哪里?为什么不一样?

使用的资源

【问题讨论】:

    标签: solr lucene relevance solr5


    【解决方案1】:

    那个数字就是 docid。它唯一地标识要从索引中检索的文档。这与得分完全无关。

    真正的得分差异在于字段标准:

    • 文档 1:0.5 = fieldNorm
    • 文档 2:0.21875 = fieldNorm

    fieldNorm 是根据两个数字计算得出的。文档被索引时赋予该字段的提升,以及该字段的长度(更精确的描述可以在TFIDFSimilarity docs 中的norm(t,d) 部分找到)

    因此,要么该字段在文档 1 中较短,要么在文档 1 中被编入索引时被赋予更高的提升

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-13
      • 2016-11-26
      • 2016-01-01
      • 2012-05-13
      • 1970-01-01
      相关资源
      最近更新 更多