我与solr一起工作,我无法解决结果准确性的问题(q vs bf考虑到重音)
我有一个solr索引,其中2个字段已编入索引(这是简化的):
town, population
Félines, 100
Ferrand, 10000
当我查询时:q=Fé&qf=town town_ascii&bf=population^2&defType=dismax
我希望我的结果显示此订单:Félines > Ferrand
。
当我查询:q=Fe&qf=town town_ascii&bf=population^2&defType=dismax
时,我希望我的结果显示此订单:Ferrand > Félines
麻烦的是Ferrand每次都在击败Félines,因为它的人口更多,我该如何解决?我没有找到如何使用查询的分数并在bf
中使用它来平衡人口
答案 0 :(得分:2)
您没有发布schema.xml
,但我认为您正在ASCIIFoldingFilterFactory
字段中使用town_ascii
。这意味着如果您要为Félines一词编制索引,则以下是索引词:
town: Félines
town_ascii: Felines
因此,您说town
字段的匹配比town_ascii
的匹配更重要。您应该将qf
参数更改为qf=town^3 town_ascii
之类的内容,以便更加重视town
字段。然后,您可以根据town
与population
相比所需的重量调整重量。