美文网首页
【ES从入门到实战】十五、全文检索-ElasticSearch-

【ES从入门到实战】十五、全文检索-ElasticSearch-

作者: runewbie | 来源:发表于2020-05-26 21:30 被阅读0次

    接第14节

    6)、filter 【结果过滤】

    并不是所有的查询都需要产生分数,特别是那些仅用于 "fitering" (过滤)的文档。为了不计算分数 Elasticsearch 会自动检查场景并且优化查询的执行。
    在 filter 元素下指定的查询对得分没有影响-得分以 0 形式返回。分数仅受指定查询的影响。
    must 查询为例:

    GET /bank/_search
    {
      "query": {
        "bool": {
          "must": [
            {"range": {
              "age": {
                "gte": 18,
                "lte": 30
              }
            }}
          ]
        }
      }
    }
    
    在这里插入图片描述

    使用 filter 来替代 must 查询,需要注意的是,使用filter查询出的结果和must查询出的结果是一致的,差异仅是没有相关性得分:

    GET /bank/_search
    {
      "query": {
        "bool": {
          "filter": {
            "range": {
              "age": {
                "gte": 18,
                "lte": 30
              }
            }
          }
        }
      }
    }
    
    在这里插入图片描述

    所以我们在 should 之后还可以加上 filter 条件进行过滤:

    GET /bank/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "gender": "M"
              }
            },
            {
              "match": {
                "address": "Mill"
              }
            }
          ],
          "must_not": [
            {"match": {
              "age": 30
            }}
          ],
          "should": [
            {"match": {
              "lastname": "Holland"
            }}
          ],
          "filter": {
            "range": {
              "age": {
                "gte": 18,
                "lte": 30
              }
            }
          }
        }
      }
    }
    
    在这里插入图片描述

    参考文档-query-dsl


    参考:

    Elasticsearch Reference

    elastic

    全文搜索引擎 Elasticsearch 入门教程

    相关文章

      网友评论

          本文标题:【ES从入门到实战】十五、全文检索-ElasticSearch-

          本文链接:https://www.haomeiwen.com/subject/jvrbahtx.html