Lucene.Net文档虽然有一些差异,但得分相同
本文关键字:文档 Net Lucene | 更新日期: 2023-09-27 18:17:54
我在Lucene.net
上运行一些查询,它返回几个文档只有unit
属性
查询为:+house:5757 street:"madeup" street:creek*单位:114*余数:66103*余数:"114 Miami fl 66103"
,我得到了几个文档
house:5757 street:"madeup" street:creek unit:100 remainder:"100 miami fl 66103"
house:5757 street:"madeup" street:creek unit:101 remainder:"101 miami fl 66103"
house:5757 street:"madeup" street:creek unit:102 remainder:"102 miami fl 66103"
...
house:5757 street:"madeup" street:creek unit:114 remainder:"114 miami fl 66103"
...
...
house:5757 street:"madeup" street:creek unit:200 remainder:"200 miami fl 66103"
我正在用
检索记录var collector = TopScoreDocCollector.create(25, true);
searcher.Search(topQuery, collector);
问题的部分是所有这些文档都有完全相同的分数5.09505,所以单位匹配并没有真正对文档分数产生任何影响
当文档被索引时,这就是我索引unit
字段的方式:
doc.Add(new Field("unit", unitValue, Field.Store.YES, Field.Index.NOT_ANALYZED));
编辑一些谷歌显示,RewriteMethod需要改变,但不确定,因为我还没有看到一个完整的例子
您的搜索中有一些通配符。在Lucene中,通配符查询的命中将默认返回常数分数。
通配符查询是MultiTermQueries。
尝试在QueryParser上为MultiTermQuery重写方法设置一个不同的值,看看是否会得到不同的结果:
QueryParser.setMultiTermRewriteMethod