首页 文章

ElasticSEarch的得分优化

提问于
浏览
1

我们有一个存储在ElasticSearch中的产品目录 . 每个文档看起来像这样:

{
   'family': 'products family'
   'category': 'products category' 
   'name': 'product name'
   'description': 'product description'
}

我们正在尝试构建一个查询,该查询将获得搜索项的模糊匹配,并将按以下字段顺序对结果进行评分:

  • 家庭

  • 类别

  • 名字

  • 说明

有办法吗?

1 回答

  • 1

    一种简单的方法是使用多匹配查询为每个字段提供适当的提升 .

    {
        "query": {
            "multi_match": {
               "query": "produce",
               "fields": ["family^4","category^3","name^2","description"],
               "fuzziness" :  "AUTO",
               "rewrite" : "constant_score_auto"
            }
        }
    }
    

    在同一领域匹配的所有文档将获得相同的分数 . 您可以通过调整rewrite参数Article来更改此行为,从而进一步了解此情况 .

相关问题