C# 尽管存在一些差异,但Lucene.Net文档的得分都相同

C# 尽管存在一些差异,但Lucene.Net文档的得分都相同,c#,search,lucene.net,C#,Search,Lucene.net,我在Lucene.net上运行一些查询,它返回了几个文档 仅在单位属性中存在差异 查询是: +房屋:5757街:“马德普”街:克里克*单位:114*剩余部分:66103*剩余部分:114迈阿密fl 66103” 我有几份文件 house:5757 street:"madeup" street:creek unit:100 remainder:"100 miami fl 66103" house:5757 street:"madeup" street:creek unit:101 remainde

我在
Lucene.net
上运行一些查询,它返回了几个文档 仅在
单位
属性中存在差异

查询是: +房屋:5757街:“马德普”街:克里克*单位:114*剩余部分:66103*剩余部分:114迈阿密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,因此单元匹配并没有对文档分数产生任何影响

对文档编制索引时,我就是这样为
单元
字段编制索引的:

doc.Add(new Field("unit", unitValue, Field.Store.YES, Field.Index.NOT_ANALYZED));

编辑一些谷歌搜索显示重写方法需要更改,但不确定,因为我还没有看到完整的示例

您的搜索中有一些通配符。Lucene中通配符查询的点击在默认情况下将返回常量分数

通配符查询是多项查询

尝试在QueryParser上为MultiTermQuery重写方法设置不同的值,看看是否得到不同的结果:


您的搜索中有一些通配符。Lucene中通配符查询的点击在默认情况下将返回常量分数

通配符查询是多项查询

尝试在QueryParser上为MultiTermQuery重写方法设置不同的值,看看是否得到不同的结果:


似乎只有3个其他选项:评分\u布尔值\u查询\u重写和两个其他选项,如常量\u评分\u。。。。我试了第一个,但它仍然没有注意到单位字段的差异scores@L.B,谢谢,但在这个示例中不清楚如何创建indexReader对象在任何情况下,我都尝试过,但所有条目的分数仍然相同,分数现在只是更低:1.334…我尝试过执行
query.Rewrite(indexReader.Open(目录)
但最上面几行的分数保持不变。似乎只有3个其他选项:评分\u布尔值\u查询\u重写和两个其他选项,如常量\u分数\u…我尝试了第一个选项,但它仍然没有注意scores@L.B,谢谢,但在该示例中不清楚如何创建indexReader OBJECT在任何情况下,我试过了,所有条目的分数都是一样的,现在分数只是更低了:1.334…我试过做
query.Rewrite(IndexReader.Open(directory))
,但最上面几行的分数保持不变