elasticsearch 过滤器的种类
- 推荐 1 推荐
- 收藏 2 收藏,289 浏览
序
本文主要记录es的查询过滤的使用。
使用过滤器
过滤器不影响评分,而评分计算让搜索变得复杂,而且需要CPU资源,因而尽量使用过滤器,而且过滤器容易被缓存,进一步提升查询的整体性能。
post_filter(先查询再过滤)
{
    "query": {
        "match":{"title":"Catch-22"}
    },
    "post_filter":{
        "term":{"year":1961}
    }
}filtered(先过滤再查询,速度快)
{
    "query": {
        "filtered": {
            "query": {
                "match": {
                    "title": "Catch-22"
                }
            },
            "filter": {
                "term": {
                    "year": 1961
                }
            }
        }
    }
}这种方式在2.2版本被废弃调用,改用bool的方式
{
    "query": {
        "bool": {
            "must": {
                "match": {
                    "title": "Catch-22"
                }
            },
            "filter": {
                "term": {
                    "year": 1961
                }
            }
        }
    }
}过滤器种类
范围过滤器
{
   "post_filter":{
         "range":{
             "year":{
                 "gte":1930,
                 "lte":1990
             }
         }
    }
}exists过滤器
过滤掉给定字段没有值的文档
{
   "post_filter":{
         "exists":{
             "field":"year"
         }
    }
}missing过滤器
过滤掉给定字段有值或缺失的文档
{
   "post_filter":{
         "missing":{
             "field":"year",
             "null_value":0,
             "existence":true
         }
    }
}脚本过滤器
过滤掉发表在一个世纪以前的书
{
   "post_filter":{
         "script":{
             "script":"now - doc['year'].value > 100",
             "params":{"now":2012}
         }
    }
}类型过滤器
当查询运行在多个索引上时,有用
{
   "post_filter":{
         "type":{
             "value":"book"
         }
    }
}限定过滤器
限定每个分片返回的文档数
{
   "post_filter":{
         "limit":{
             "value":1
         }
    }
}标识符过滤器
比如要指定标识符为1,2,3的文档
{
   "post_filter":{
         "ids":{
             "type":["book"],
             "values":[1,2,3]
         }
    }
}组合过滤器
{
    "query": {
        "bool": {
            "must": {
                "range": {
                    "year": {
                        "gte": 1930,
                        "lte": 1990
                    }
                }
            },
            "should": {
                "term": {
                    "available": true
                }
            },
            "boost": 1
        }
    }
}elasticsearch 过滤器的种类的更多相关文章
- Elasticsearch过滤器——filter
		Elasticsearch中的所有的查询都会触发相关度得分的计算.对于那些我们不需要相关度得分的场景下,Elasticsearch以过滤器的形式提供了另一种查询功能.过滤器在概念上类似于查询,但是它们 ... 
- Elasticsearch 过滤器
		序 本文主要记录es的查询过滤的使用. 使用过滤器 过滤器不影响评分,而评分计算让搜索变得复杂,而且需要CPU资源,因而尽量使用过滤器,而且过滤器容易被缓存,进一步提升查询的整体性能. post_fi ... 
- WebApi:过滤器的种类
		WebApi:筛选器的种类 授权筛选器:这些筛选器用于实现IAuthorizationFilter和做出关于是否执行操作方法(如执行身份验证或验证请求的属性)的安全决策.AuthorizeAttrib ... 
- elasticsearch  filters特性
		使用filters优化查询 ElasticSearch支持多种不同类型的查询方式,这一点大家应该都已熟知.但是在选择哪个文档应该匹配成功,哪个文档应该呈现给用户这一需求上,查询并不是唯一的选择.Ela ... 
- django 模版-标签-视图-csrf-token-模版继承-HTML过滤器
		""" ******模版****** --定义模版-- **变量** 视图传递给模版的数据 注意1:要遵守标识符规则 语法:{{var(即变量)}} 如果使用的变量不存在 ... 
- 理解ASP.NET Core - 过滤器(Filters)
		注:本文隶属于<理解ASP.NET Core>系列文章,请查看置顶博客或点击此处查看全文目录 Filter概览 如果你是从ASP.NET一路走过来的,那么你一定对过滤器(Filter)不陌 ... 
- elasticsearch5之Elastalert 安装使用 配置邮件报警和微信报警
		简介 Elastalert是用python2写的一个报警框架(目前支持python2.6和2.7,不支持3.x),github地址为 https://github.com/Yelp/elastaler ... 
- Elastalert安装及使用
		如果在windows 64平台报错:执行 pip install python-magic-bin==0.4.14修复https://stackoverflow.com/questions/18374 ... 
- elastalert
		http://blog.51cto.com/kexiaoke/1977481 什么是? ElastAlert是一个简单的框架,用于从弹性搜索中的数据中提取异常,尖峰或其他感兴趣的模式.在Yelp,我们 ... 
随机推荐
- vue组件参数校验
			代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ... 
- PHP缓存技术的应用1
			// 自定义缓存类 class Cache_Filesystem { // 缓存写保存 function set ($key, $data, $ttl) { //打开文件为读/写模式 $h = fop ... 
- js 常见功能总会
			一.随着页面滚动,元素到达可视区域,显示特殊样式 <!DOCTYPE html> <html lang="en"> <head> <met ... 
- iOS开发之SceneKit框架--实战地月系统围绕太阳旋转
			1.创建地月太阳系统scn文件 注意:moon在earth结构下,earth和moon在sun结构下. 2.获取scn中模型的对应节点和自转(太阳为例) 获取节点: name是对应的Identity字 ... 
- 第十一篇:一点一滴学ibatis(一)
			一.常见ORM框架1.原生的JDBC.自己写的JDBC,基本上就只够程序跑起来,缺陷和漏洞一堆堆.回顾下jdbc的几个操作,加载驱动,建立连接,预处理语句,执行,结果集遍历.这个过程中,因为连接Con ... 
- ssm项目中使用拦截器加上不生效解决方案
			在很多时候,需要拦截器来帮助我们完成一些特定的工作,比如获取请求的参数,本身在request这种获取数据就是一次磁盘的io, 如果在filter中获取了参数,那么在controller中就不能获取相关 ... 
- 13-2-return
			<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ... 
- 分析Hive表和分区的统计信息(Statistics)
			类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中. 表和分区的统计信息主要包括:行数.文件数.原始数据大小.所占 ... 
- curl http_code 状态码
			1.只得到一个url的http_code的状态码 curl -I -m 10 -o /dev/null -s -w %{http_code} http://127.0.0.1/a.html 查询hea ... 
- 大O法时间复杂度计算
			困惑的点——log,如何计算得出? ① 上限:用来表示该算法可能有的最高增长率. ② 大O表示法:如果某种算法的增长率上限(最差情况下)是f(n),那么说这种算法“在O(f(n))中”.n为输入规模. ... 
