search - ElasticSEarch的分数优化

标签 search elasticsearch full-text-search

我们有一个存储在ElasticSearch中的产品目录。
每个文档如下所示:

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

我们正在尝试构建一个查询,该查询将获得搜索词的模糊匹配,并按以下字段顺序对结果进行评分:
  • 家庭
  • 类别
  • 名称
  • 说明

  • 有办法吗?

    最佳答案

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

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

    在同一字段上匹配的所有文档将获得相同的分数。
    您可以通过调整rewrite参数来更改此行为
    Article对此提供了进一步的见解。

    关于search - ElasticSEarch的分数优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31121415/

    相关文章:

    sql - JSONB ILIKE 索引

    postgresql - 索引数组以进行全文搜索

    Mysql 全文搜索与左连接另一个表

    flutter - 从地址抖动中获取坐标

    php - 帮助在 PHP 中设置高级搜索参数的逻辑

    搜索引擎列表就像提供的屏幕截图

    elasticsearch - 查询结果是否会影响Elasticsearch短语建议?

    javascript - 使用 typeahead.js 创建可点击的动态链接

    elasticsearch - BM25 是否使用查询协调器?

    database - 如何使用 ES 搜索对具有数组项的嵌套对象构建基于 JSON 的查询?