我正在使用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。