12_Elastic Search multi_match语法实现dis_max+tie_breaker

12_ElasticSearch multi_match语法实现dis_max+tie_breaker

更多干货

  • 分布式实战(干货)
  • spring cloud 实战(干货)
  • mybatis 实战(干货)
  • spring boot 实战(干货)
  • React 入门实战(干货)
  • 构建中小型互联网企业架构(干货)
  • python 学习持续更新
  • ElasticSearch 笔记

概述:

dis_max

  • score沿用子查询score的最大值

tie_breaker

  • 可以通过tie_breaker来控制其他field的得分

minimum_should_match,主要是作用:

  • 1、去长尾,long tail
  • 2、长尾,比如你搜索5个关键词,但是很多结果是只匹配1个关键词的,其实跟你想要的结果相差甚远,这些结果就是长尾
  • 3、minimum_should_match,控制搜索结果的精准度,只有匹配一定数量的关键词的数据,才能返回

例子:

GET /forum/article/_search
{
  "query": {
    "multi_match": {
        "query":                "java solution",
        "type":                 "best_fields", 
        "fields":               [ "title^2", "content" ],
        "tie_breaker":          0.3,
        "minimum_should_match": "50%" 
    }
  } 
}
GET /forum/article/_search
{
  "query": {
    "dis_max": {
      "queries":  [
        {
          "match": {
            "title": {
              "query": "java beginner",
              "minimum_should_match": "50%",
			  "boost": 2
            }
          }
        },
        {
          "match": {
            "body": {
              "query": "java beginner",
              "minimum_should_match": "30%"
            }
          }
        }
      ],
      "tie_breaker": 0.3
    }
  } 
}
 
   

相关文章

  • ElasticSearch 笔记
  • 1_ElatisSearch使用term filter来搜索数据

  • 2_ElatisSearch filter执行原理 bitset机制与caching机制

  • 3_ElatisSearch 基于bool组合多个filter条件来搜索数据

  • 4_ElatisSearch 使用terms搜索多个值

  • 5_ElatisSearch 基于range filter来进行范围过滤

  • 6_ElatisSearch 控制全文检索结果的精准度

  • 7_ElatisSearch term+bool实现的multiword搜索原理

  • 8_基于boost的搜索条件权重控制

  • 9_ElastisSearch 多shard场景下relevance score不准确

  • 日志管理ELK

你可能感兴趣的:(【构建高可用架构】,【大数据】,【ElatisSearch】)