首页 > 解决方案 > 当我们有两种不同类型的字段时,分数问题

问题描述

在 Solr 中,我有两个字段,如下所示:

   <field name="category_id" type="pint" indexed="true" stored="true" omitNorms="true" multiValued="true" />   
   <field name="event_attendance_mode" type="text" indexed="true" stored="true" multiValued="true" default="offline" />

在点击查询时?defType=edismax&fl=score, &q= :*&start=0&rows=10&bq=category_id:26^10 &bq=event_attendance_mode:online^100&debug=true

我得到 "解释": { "39505": "\n70.51515 = sum of:\n 1.0 = : \n 10.0 = category_id:[26 TO 26]^10.0\n 59.51515 = weight(event_attendance_mode:online in 9 ) [SchemaSimilarity],结果:\n 59.51515 = score(freq=1.0),乘积:\n 100.0 = boost\n 1.3093333 = idf,计算为 log(1 + (N - n + 0.5) / (n + 0.5)) 来自:\n 13 = n,包含术语的文档数\n 49 = N,具有字段的文档总数\n 0.45454544 = tf,计算为 freq / (freq + k1 * (1 - b + b * dl / avgdl)) 来自:\n 1.0 = 频率,文档中术语的出现\n 1.2 = k1,术语饱和参数\n 0.75 = b,长度标准化参数\n 1.0 = dl,字段长度\n 1.0 = avgdl , 字段平均长度\n", "39506": "\n11.0 = 总和:\n 1.0 = :\n 10.0 = category_id:[26 TO 26]^10.0\n" },

这里的问题是对于字段 event_attendance_mode 我们得到 SchemaSimilarity 计算,而对于 category_id 我们没有这个,所以问题是当我们有 Schemasimilarity 它计算 tf idf 然后返回计算的分数,它总是小于我们通过的提升值(这里是“分数”:70.51515),当我们没有模式相似性时,它会将完整的提升值添加到分数(这里的“分数”:11)。我希望两个字段都应该同步,要么都有 tf/idf 计算,否则没有人有这个计算。我怎样才能做到这一点。

标签: solrlucenesimilarity

解决方案


推荐阅读