Solr:有没有办法删除字段的fieldNorm负增强?

时间:2014-10-23 18:01:45

标签: c# search solr norm

我正在使用Solr搜索事件文档。每个活动都有标题和位置以及其他一些领域。配置如下:

t_name^4 t_speakers^3 t_location^2 t_openTo^1 t_sponsors^1

所以标题匹配优先于位置匹配。大多数时候这是有效的。但是,在具有精确位置匹配的结果之后,通常会返回与长标题匹配的结果。例如,如果我搜索波士顿,我的第一个结果是“{标题:MBA巡回赛},{位置:波士顿}”,我的第二个结果是“{标题:合同对地下煤矿开采Marric Buessing中职业伤害和死亡人数的影响,波士顿大学},{位置:null}“。我希望首先在波士顿获得冠军的结果。

我非常肯定MBA Tour首先回来的原因是因为fieldNorm,Solr给包含很多术语的字段带来的负面提升。尽管位置比Title更低,但是Location = Boston的完全匹配最终得分高于Title = {super long title + Boston}。

有没有办法在我的Solr配置中或在传递给Solr的查询字符串中否定或删除fieldNorm负增强?或者,有没有其他方法可以首先获得标题结果而不仅仅更改标题的提升?增加提升可能对某些结果起作用,但我无法保证标题长度的任何限制,因此标题的提升现在可能总是足以否定fieldNorm。

1 个答案:

答案 0 :(得分:2)

您可以通过将omitNorms="true"应用于字段定义来禁用字段的范数提升。这也将禁用该字段的索引时间提升,但除非您确实对该确切字段使用索引时间提升,否则这不重要。你想在这之后重新索引。

请参阅omitNorms#9355320