• es中filter和query的对比


    1、filter与query示例
    PUT /company/employee/2
    {
      "address": {
        "country": "china",
        "province": "jiangsu",
        "city": "nanjing"
      },
      "name": "tom",
      "age": 30,
      "join_date": "2016-01-01"
    }

    PUT /company/employee/3
    {
      "address": {
        "country": "china",
        "province": "shanxi",
        "city": "xian"
      },
      "name": "marry",
      "age": 35,
      "join_date": "2015-01-01"
    }

    搜索请求:年龄必须大于等于30,同时join_date必须是2016-01-01
    GET /company/employee/_search
    {
      "query": {
      "bool": {
        "must": [{
          "match": {
            "join_date": "2016-01-01"
            }
          }
        ],
        "filter": {
          "range": {
            "age": {
              "gte": 30
              }
            }
          }
        }
      }
    }

    2、filter与query对比大解密
    filter,仅仅只是按照搜索条件过滤出需要的数据而已,不计算任何相关度分数,对相关度没有任何影响。
    query,会计算每个document相对于搜索条件的相关度,并按照相关度进行排序。
    一般来说,如果你是在进行搜索,需要将最匹配搜索条件的数据先返回,那么用query;如果你只是要根据一些条件筛选出一部分数据,不关注排序,那么使用filter。

    3、filter和query性能对比
    filter,不需要计算相关度分数,不需要按照相关度分数进行排序,同时还有内置的机制,自动cache最常使用filter的数据。
    query,相反,要计算相关度分数,按照分数进行排序,而且无法cache结果。

  • 相关阅读:
    Unity5 GI与PBS渲染从用法到着色代码
    Unity场景渲染相关实现的猜想
    Ogre2.1 Hlms与渲染流程
    Ogre2.1 灯光与阴影
    Ogre2.1 结合OpenGL3+高效渲染
    Ogre2.0 全新功能打造新3D引擎
    Ogre 编辑器三(自动生成与更新Ogre对象编辑界面)
    Ogre 编辑器二(用Ogre的地形组件加载天龙八部地形)
    一个简单的旋转控制器与固定屏幕位置
    sql 触发器里,发生错误,回滚提示错误语句
  • 原文地址:https://www.cnblogs.com/qinjf/p/8530968.html
Copyright © 2020-2023  润新知