0

我正在使用 Solr 搜索事件文档。每个事件都有一个标题和一个位置以及一些其他字段。配置是这样的:

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

因此标题匹配优先于位置匹配。大多数情况下这是有效的。但是,具有长标题的匹配结果通常会在具有精确位置匹配的结果之后返回。例如,如果我搜索波士顿,我的第一个结果是“{Title: MBA Tour}, {Location: Boston}”,我的第二个结果是“{Title: Impact of Contracting on Occupational Injury and Deaths in Underground Coal Mining Marric Buessing , 波士顿大学}, {Location: null}”。我想先拿到波士顿的冠军头衔。

我很确定 MBA Tour 首先回归的原因是 fieldNorm,Solr 对包含大量术语的字段产生了负面影响。尽管 Location 的提升低于 Title,但 Location = Boston 的精确匹配最终得到的分数高于 Title = {super long title + Boston}。

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

4

1 回答 1

3

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

请参阅omitNorms#9355320

于 2014-10-23T18:45:54.683 回答