Lucene 6.2.0中的评分文档
我在lucene 6.2.0中的查询如下:Lucene 6.2.0中的评分文档,lucene,Lucene,我在lucene 6.2.0中的查询如下: query query = new PhraseQuery.Builder() .add(new Term("country","russia")) .setSlop(1) .build(); 基本上在我的所有文件中: { "_id" : ObjectId("586b723b4b9a835db416
query query = new PhraseQuery.Builder()
.add(new Term("country","russia"))
.setSlop(1)
.build();
基本上在我的所有文件中:
{
"_id" : ObjectId("586b723b4b9a835db416fa26"),
"name" : "test",
"countries" : {
"country" : [
{
"name" : "russia"
},
{
"name" : "USA china"
}
]
}
}
{
"_id" : ObjectId("586b73f24b9a835fefb10ca5"),
"name" : "nitika jain",
"countries" : {
"country" : [
{
"name" : "russia and denmrk"
},
{
"name" : "USA china"
}
]
}
}
{
"_id" : ObjectId("586b744f4b9a835fefb10ca7"),
"name" : "arjun",
"countries" : {
"country" : [
{
"name" : "russia pakistan"
},
{
"name" : "india iraq"
}
]
}
}
我想要一份只有俄罗斯
的文件。理想情况下,它应该是得分最高的一个,但我得到的是类似于“找到了3个命中率。”
文件**0.12874341**
文件**0.12874341**
文件**0.12874341**
所有3个结果得分相等。如何获得得分最高的只有
俄罗斯的文档?在短语查询中,slop默认为零,需要精确匹配。这意味着如果以这种方式修改查询:
query query = new PhraseQuery.Builder()
.add(new Term("country","russia"))
.build();
你会得到你想要的。实际上,如果在索引时,我将feild保留为stringFeild,而不是text feild,并进行普通查询,而不是短语查询,但我需要feild为textfield,那么它是有效的。
query query = new PhraseQuery.Builder()
.add(new Term("country","russia"))
.build();