我在下面提出了以下查询以获得此回复 -
"response":{"numFound":200,"start":0,"maxScore":20.458012,"docs":[
{
"food_group":"Dairy",
"carbs":"13.635",
"protein":"2.625",
"name":"Apple Milkshake",
"fat":"3.814",
"id":"109",
"calories":99.0,
"_version_":1565386306583789568,
"score":20.458012},
{
"food_group":"Proteins",
"carbs":"4.79",
"protein":"4.574",
"name":"Chettinad Egg Curry",
"fat":"6.876",
"id":"526",
"calories":99.0,
"_version_":1565386306489417728,
"score":19.107327}
.....//other documents...
]}

Querys -
q = (food_group:"Proteins" OR
food_group:"Dairy" OR
food_group:"Grains")
bf = div(1,abs(sub(100,calories)))^15
bq = food_group:"Proteins" + food_group:"Dairy" + food_group:"Grains"
我的问题是,即使我没有提供任何促进" Dairy"关于"蛋白质"在bq
为什么" Dairy"文件得分较高。
答案 0 :(得分:1)
因为“乳制品”在你的语料库中是一个更罕见的术语。 Lucene会给一场比赛提供更高的分数,这个比赛很少见,而且比赛很常见。
如果你想进入detials,请查看如何计算BM25相似度。 BM25是Lucene(因此Solr)在TD-IDF之前默认使用的,但它们非常相似。