elasticsearch学习笔记(二十七)——Elasticsearch filter与query

栏目: 后端 · 发布时间: 6年前

内容简介:搜索请求:年龄必须大于等于30,同时join_date必须是2016-01-01filter:仅仅只是按照搜索条件过滤出需要的数据而已,比计算任何相关度分数,对相关度没有任何影响一般来说,如果是在进行搜索,需要将最匹配搜索条件的数据先返回,那么用query。如果只是要根据一些条件筛选出一部分数据,不关注其排序,那么用filter。

filter和query示例

PUT /employee/_doc/1
{
  "address": {
    "country": "china",
    "province": "jiangsu",
    "city": "nanjing"
  },
  "name": "tom",
  "age": 30,
  "join_date": "2016-01-01"
}
PUT /employee/_doc/2
{
  "address": {
    "country": "china",
    "province": "shanxi",
    "city": "xian"
  },
  "name": "marry",
  "age": 35,
  "join_date": "2015-01-01"
}

搜索请求:年龄必须大于等于30,同时join_date必须是2016-01-01

GET /employee/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "join_date": "2016-01-01"
          }
        }
      ],
      "filter": {
        "range": {
          "age": {
            "gte": 30
          }
        }
      }
    }
  }
}
{
  "took" : 141,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "employee",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.0,
        "_source" : {
          "address" : {
            "country" : "china",
            "province" : "jiangsu",
            "city" : "nanjing"
          },
          "name" : "tom",
          "age" : 30,
          "join_date" : "2016-01-01"
        }
      }
    ]
  }
}

filter与query对比大揭秘

filter:仅仅只是按照搜索条件过滤出需要的数据而已,比计算任何相关度分数,对相关度没有任何影响

query: 会计算每个document相对于搜索条件的相关度,并按照相关度进行排序

一般来说,如果是在进行搜索,需要将最匹配搜索条件的数据先返回,那么用query。如果只是要根据一些条件筛选出一部分数据,不关注其排序,那么用filter。

filter与query性能对比

filter: 不需要计算相关度分数,不需要按照相关度分数进行排序,同时还有内置的自动缓存cache,会缓存住最常使用的filter数据

query: 需要计算相关度分数,并按照相关度分数进行排序,无法缓存结果


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

乐在C语言

乐在C语言

蔡明志 / 2013-1 / 39.00元

《乐在C语言》由蔡明志所著,本书内容的撰写上,以浅显易懂的文字,并搭配简短的范例程序,以及通俗幽默的漫画,讲述每一章的主题,真正做到了繁杂的问题通俗化,通俗化了的问题实例化,使读者得到事半功倍的学习效果。《乐在C语言》基本包括了C语言编程的全部内容,如变量、函数、指针、结构体、文件等。每一章都有上机实习,这些题目是从范例程序中加以演变的,以便读者能举一反三,达到学以致用。 《乐在C语......一起来看看 《乐在C语言》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具