Solr - 尽管查询没有区分它们,但为什么数十个文档会有所不同

时间:2017-04-23 03:15:55

标签: search solr lucene

我在下面提出了以下查询以获得此回复 -



"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"文件得分较高。

1 个答案:

答案 0 :(得分:1)

因为“乳制品”在你的语料库中是一个更罕见的术语。 Lucene会给一场比赛提供更高的分数,这个比赛很少见,而且比赛很常见。

如果你想进入detials,请查看如何计算BM25相似度。 BM25是Lucene(因此Solr)在TD-IDF之前默认使用的,但它们非常相似。