solr - 当我们有两种不同类型的字段时,分数问题
问题描述
在 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 计算,否则没有人有这个计算。我怎样才能做到这一点。
解决方案
推荐阅读
- c - 如何在 C 中使用带有数组的随机数生成器
- python - 有没有一种快速的方法来遍历涉及计算的熊猫数据框?
- python - 如何从python中的N个不同正态分布中采样M次?在处理时间方面是否有“更快”的方式?
- julia - 声明任意数量的变量以创建多项式环 julia
- javascript - 将“确认”弹出按钮标签“确定”和“取消”更改为“继续”和“返回页面”
- oracle - Oracle - JSON_VALUE 返回 NULL
- java - 虽然循环错误重复我的用户输入提示
- android - Firebase Cloud Messaging 推送通知在 Android 上不能在前台工作,只能在后台工作
- macos - 错误:未知命令:木桶 || 尽管使用了多个实例试验
- android - Android 使用 FirestorePagingAdapter 从多个文档中查询数据