我在Lucene.net
上运行了一些查询,它正在返回多个文档
只有unit
属性
查询是: + house:5757 street:“madeup”street:creek * unit: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,但不确定,因为我还没有看到完整的示例
答案 0 :(得分:1)
您的搜索中有一些通配符。来自Lucene中的通配符查询的命中将默认返回常量分数。
通配符查询是MultiTermQueries。
尝试在QueryParser上为MultiTermQuery重写方法设置不同的值,看看是否得到不同的结果: