ElasticSearch查询过滤

Java反射Class类中getDeclaredField()和getField()的区别 1. getField和getFields方法 类中有一个字段叫 private String mysettDate; 该字段被private修饰 reqBean.getClass().getField("mysettDate"),方法调用时,报出了NoSuchFieldException 异常。 2. getDeclaredField和getDeclaredFields方法 类中有一个字段叫 private String mysettDate; 该字段被private修饰 reqBea. 阅读详情

请求体查询

由json格式参数进行查询
Http不允许get请求中携带交互数据。可用POST携带参数

结构化查询

结构化查询要使用query参数。

示例:
1.匹配所有

GET /_search
{
    "query": {
     "match_all": {}
    }
}

2.work字段查找包含elasticsearch的记录

GET /_search
{
    "query": {
        "match": {
            "tweet": "elasticsearch"
        }
    }
}

3.复合子句(通过bool合并其他查询子句,条件为must,must_not,should)
示例:查询的是邮件正文中含有“business opportunity”字样的星标邮件或收件箱中正文中含有“business opportunity”字样的非垃圾邮件。

{
"bool": {
    "must": { "match": { "email": "business opportunity" }},
    "should": [
        { "match": { "starred": true }},
        { "bool": {
            "must": { "folder": "inbox" },
            "must_not": { "spam": true }}
            }
        }
    ],
    "minimum_should_match": 1
    }
}

ElasticSearch查询与过滤

查询与过滤很相似但目的不同。过滤会查找es中的文档字段值是否包含特定值,二查询会查找文档中每个字段值跟特定值的匹配程度用相关性评分(_score)表示。

过滤关键词

terms , term
term用于精确匹配,terms允许多个条件

{ "term": { "age": 26 }}
{ "term": { "date": "2014-09-01" }}
{ "term": { "public": true }}
{ "term": { "tag": "full_text" }}
{
    "terms": {
        "tag": [ "search", "full_text", "nosql" ]
    }
}

range
range 指定范围过滤

{
    "range": {
        "age": {
        "gte": 20,
        "lt": 30
        }
    }
}

范围操作符包含:

gt :: 大于
gte :: 大于等于
lt :: 小于
lte :: 小于等于
exists和missing

这两个关键词都用于查找文档中存在某个字段或者不存在某个字段。

{
    "exists": {
        "field": "title"
    }
}
match 和 match_all multi_match

match_all可以查询所有文档。

{
    "match_all": {}
}

match可以精准查询以及全文查询

{
    "match": {
       "tweet": "About Search"
    }
}

multi_match

{
    "multi_match": {
      "query": "full text search",
      "fields": [ "title", "body" ]
    }
}

查询过滤

对于需要查询同时过滤的情况,即复合查询。
加入使用filtered。
如下:

{
    "query": {
        "filtered": {
            "filter": {
                "term": {
                    "folder": "inbox"
                }
            },
            "query": {
                "match": {
                    "email": "business opportunity"
                }
            }
        }
    }
}

示例:

{
    "query": {
        "filtered": {
            "filter": {
                "bool": {
                    "must": {
                        "term": {
                            "folder": "inbox"
                        }
                    },
                    "must_not": {
                        "query": {<1>
                            "match": {
                                "email": "urgent business proposal"
                            }
                        }
                    }
                }
            }
        }
    }
}

<1>的位置,说明过滤语句中也可以包含查询语句代替bool。
但是很少用到的过滤语句中包含查询,保留这种用法只是为了语法的完整性。 只
有在过滤中用到全文本匹配的时候才会使用这种结构

validate关键词

使用validate可以检测自己写的查询语句是否有误。

{
    "query": {
        "tweet": {
            "match": "really powerful"
        }
    }
}

非法提示:

{
    "_shards": {
        "failed": 0,
        "successful": 1,
        "total": 1
    },
    "valid": false
}

explain关键词

explain可以查询索引的具体信息包括其使用的分析器和映射关系
GET /_validate/query?explain

{
    "query": {
        "match": {
            "tweet": "really powerful"
        }
    }
}

结果:

{
    "_shards": "",
    "explanations": [
        {
            "explanation": "tweet:really tweet:powerful",
            "index": "us",
            "valid": true
        },
        {
            "explanation": "tweet:really tweet:power",
            "index": "gb",
            "valid": true
        }
    ],
    "valid": true
}
【Elasticsearch】filterQuery过滤查询 Elasticsearch 是一个基于 Lucene 的分布式、RESTful 风格的搜索和数据分析引擎。它旨在快速、高效地存储、搜索和分析大量数据,被广泛应用于各种领域,如日志分析、电商搜索、企业搜索等。其分布式架构允许它轻松处理 PB 级别的数据,并能在多台服务器上进行水平扩展,以满足不同规模的业务需求。 阅读详情

相关推荐

别再手动上传了!用宝塔面板的‘Let‘s Encrypt’免费SSL证书,3分钟自动续期

本文详细介绍了如何利用宝塔面板的‘Let‘s Encrypt’功能实现SSL证书的自动申请和续期,3分钟完成配置即可永久免费使用。通过对比不同SSL证书方案,突出Let's Encrypt的免费、自动续期和高安全性优势,特别适合个人博客和中小企业官网。

weixin_30415113的博客 150

ElasticSearch多字段查询去重过滤详解

ElasticSearch多字段查询去重过滤详解

IT之一小佬的博客 8499

半导体EAP系统入门指南:从零开始理解设备自动化程序(附实战案例)

本文深入浅出地介绍了半导体制造中EAP(设备自动化程序)系统的核心作用与工作原理。EAP作为连接MES与生产设备的桥梁,负责指令翻译、数据采集与实时控制,是实现晶圆厂全自动化的关键。文章通过对比手动与自动模式,阐述了EAP在提升效率、保障良率方面的价值,并提供了一个实战案例,帮助读者从零构建对半导体CIM体系中这一关键组件的理解。

weixin_29200741的博客 734

ElasticSearch--过滤查询

ElasticSearch--过滤查询

qq_50596778的博客 2565

Autodesk软件网络授权破解

Autodesk 全系列产品网络授权破解 此网络许可授权破解文件及方法适用Autodesk 绝大部分的产品, 安装网络许可证管理器Autodesk网络许可证管理器x64位官方下载地址( https://knowledge.autodesk.com/sites/default/files/file_downloads/nlm11.14.1.3_ipv4_ipv6_win64.msi ) Autod...

weixin_33919950的博客 8260

人工势场法三大致命缺陷?我用ROS+Gazebo做了组对比实验

本文通过ROS与Gazebo仿真实验,深入剖析了人工势场法(APF)在机器人路径规划中的三大经典问题:局部最小值、目标不可达和路径震荡。文章不仅复现了这些缺陷,还对比测试了虚拟目标点法、改进斥力场及运动平滑等主流改进方案,为工程选型提供了基于数据的实用建议。

dapp9builder的博客 216

ElasticSearch教程——filter与query对比

ElasticSearch汇总请查看:ElasticSearch教程——汇总篇 在文章ElasticSearch教程——Kibana简单操作ES末尾我们用到了must,should以及must not来进行一个数据搜索的限制以获取期望的搜索结果。实际上在除了上述所说方法外我们还能使用filter进行过滤,以获取自己想要的结果。   新增测试数据 PUT /company/employee...

东天里的冬天 3704

手把手教你学Simulink——基于Simulink的多轮PMSM同步驱动交叉耦合控制

摘要:本文针对多轮PMSM同步驱动系统的负载不均、参数差异等问题,提出基于Simulink的交叉耦合控制解决方案。通过实时补偿轮间同步误差,实现同步误差<1%、转矩脉动<5%的性能提升。文章详细介绍了系统架构、核心算法(包括PMSM数学模型和偏差耦合控制算法)、Simulink建模步骤及参数设置,并通过仿真验证了稳态和动态性能。同时提供了工程调试建议和完整代码实现,为多轮驱动系统开发提供实用参考。该方案计算量小,可移植性强,适用于电动汽车、AGV等应用场景。

MHD0815的博客 140

Elasticsearch(七)信息检索与结果过滤

Elasticsearch: 6.4.2 聚合分类: Bucketing聚合: 类似SQL中的GROUP BY;基于检索构成了逻辑文档组,满足特定规则的文档放置到一个桶里,每一个桶关联一个key; 分桶聚合可以嵌套分桶聚合。 Metric聚合: 基于一组文档进行聚合。所有的文档在一个检索集合里,文档被分成逻辑的分组; 对一个数据集求最大、最小、和、平均值等指标的聚合。 Matrix聚合: 此功...

海洋之心 3111

ORB-SLAM3算法2之EuRoc开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹

ORB-SLAM3算法1 已成功编译安装ORB-SLAM3到本地,本篇目的是用EuRoc开源数据来运行ORB-SLAM3,并生成轨迹,最后用evo评估工具来评估ORB-SLAM3生成的轨迹和真值轨迹。

重点记录机器人和自动驾驶相关领域的技术,尤其是计算机视觉,视觉SLAM等,不仅有前言文献或必备算法的学习,也会有实际应用的点滴经验 3762

[VCS]VCS dump fsdb的精细化控制

本文介绍了VCS FSDB波形dump的精细化控制方法。主要内容包括:1)基本dump方式;2)通过$fsdbDumpoff排除特定层次;3)使用$fsdbDumpvars选择性dump指定模块;4)运行时动态控制dump开关;5)通过文件管理排除列表($fsdbDumpoffFile或自定义读取);6)层次控制策略(剪除整棵树或仅当前层)。这些方法可有效控制波形文件大小,提高仿真效率。

元直的博客 1033

es的range过滤_ElasticSearch 常用的查询过滤语句

Filter DSLterm 过滤term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经分析的文本数据类型):{ "term": { "age": 26 }}{ "term": { "date": "2014-09-01" }}{ "term": { "public": true }}{ "term": { ...

weixin_28964423的博客 2114

大厂面试:字节跳动大数据面试题及参考答案(10万字长文及多张原理图持续更新)

在 Spark 中,宽窄依赖是用来描述 RDD(弹性分布式数据集)之间的依赖关系的概念。窄依赖是指父 RDD 的每个分区最多被一个子 RDD 的分区使用,即子 RDD 的分区可以通过确定的规则从父 RDD 的分区计算得到,并且不需要跨节点进行数据传输。窄依赖通常可以在一个节点上进行计算,不需要进行数据的 shuffle 操作,因此性能较高。宽依赖是指父 RDD 的一个分区可能被多个子 RDD 的分区使用,即子 RDD 的分区需要通过跨节点的数据 shuffle 操作从父 RDD 的多个分区获取数据。

大模型大数据攻城狮的专栏 1650

es筛选数据_Elasticsearch——查询//过滤详细总结

查询分为两种:字符串查询和DSL查询1、字符串查询详细总结,此种方法一般用于简单测试。想要更加灵活,功能更加强大的查询功能还是得用DSL。但是这个字符串查询用起来还是挺方便的。切记不可将这种查询语句给你的客户。除非这个客户是你非常信任的。要不然这种语句会给你的集群带来致命的危险!!!!!1>GET /index/tweet/_search?q=tweet:elasticsearch #查询...

weixin_39920338的博客 6320

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

es查询所欲_ElasticSearch常用的查询过滤语句

这次主要讲常见的过滤查询语句!term过滤term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经分析的文本数据类型):{ "term": { "age": 26 }}{ "term": { "date": "2014-09-01" }}{ "term": { "public": true }}{ "term"...

weixin_39881802的博客 601

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【ES】ElasticSearch 结构化查询和过滤

文章目录@[toc]一、DSL1.1、叶子查询语句1.2、复合查询语句二、Query DSL 和 Filter DSL2.1、Query DSL2.2、Filter DSL2.3、比较三、重要的查询过滤语句3.1、match3.2、multi_match3.3、match_phrase3.4、match_all3.5、term3.6、terms3.7、range3.8、exists3.9、bool...

w1992wishes的博客 873

Elasticsearch - 优化 Elasticsearch 查询速度 过滤先行原则

摘要 本文深入解析Elasticsearch性能优化核心原则——“过滤先行”。通过对比查询(Query)与过滤(Filter)的本质差异,揭示不必要的打分计算会严重拖慢查询速度。文中提供电商商品搜索的典型案例,展示如何将精确匹配条件(如分类、价格范围)放入filter子句以利用缓存机制,实测性能提升7倍。同时给出Java客户端实现的最佳实践,指导开发者合理使用bool查询的must和filter子句,并列出适合过滤的条件类型。对于Elasticsearch开发者而言,掌握过滤先行原则是优化查询性能的关键一步

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

重学Elasticsearch第5章 : 过滤查询、聚合查询

filter, Elasticsearch 过滤查询, 聚合查询

Guizy 2785

es的range过滤_elasticsearch之查询过滤

序本文主要记录es的查询过滤的使用。使用过滤器过滤器不影响评分,而评分计算让搜索变得复杂,而且需要CPU资源,因而尽量使用过滤器,而且过滤器容易被缓存,进一步提升查询的整体性能。post_filter(先查询再过滤){"query": {"match":{"title":"Catch-22"}},"post_filter":{"term":{"year":1961}}}filtered(先过滤再查...

weixin_39921087的博客 628

es根据字段长度过滤_ElasticSearch 常用的查询过滤语句

Filter DSLterm 过滤term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经分析的文本数据类型):{ "term": { "age": 26 }}{ "term": { "date": "2014-09-01" }}{ "term": { "public": true }}{ "term": { ...

weixin_39763293的博客 2856

es根据字段长度过滤_elasticsearch之查询结果过滤

前言在未来,一篇文档可能有很多(是的,很多!不要被我们的示例这仨俩字段所迷惑)的字段,每次查询都默认给我们返回全部,在数据量很大的时候,是的,比如我只想查姑娘的手机号,你一并给我个喜好啊、三围什么的算什么?是要告诉洒家,hi,小老弟,要撩妹么?所以,我们对结果做一些过滤,清清白白的告诉elasticsearch,小老弟,我只是查!水!表!准备数据PUT zhifou/doc/1{"name":"顾...

weixin_39718286的博客 1032

ElasticSearch系列 - SpringBoot整合ES:查询条件 query 和过滤条件 filter 的区别

需要注意的是,虽然过滤器(Filter)不会影响文档的相关性得分,但是当过滤器与查询条件组合使用时,查询结果仍然会根据文档与查询条件的匹配程度计算相关性得分。ElasticSearch中的过滤器(Filter)是一种用于限制查询结果范围的查询类型,它可以根据指定的条件来过滤掉不符合要求的文档,从而提高查询效率。在ElasticSearch中,过滤器(Filter)是一种用于限制查询结果范围的查询类型,它可以根据指定的条件来过滤掉不符合要求的文档,从而提高查询效率。

你今天真好看呀 3415

ES es Elasticsearch 十三 Java api 实现搜索 分页查询 复杂查询 过滤查询 ids查询 等

思路 参考 api 写法 写Java代码 请求条件构建层次思路。构建请求的时候增加如下代码即可。

银河系天城知识宝库_技术专家蒋浩宇 1620

es内嵌文档查询,在ElasticSearch中过滤,嵌套的inner_hits查询的聚合

I'm only a few days new to ElasticSearch, and as a learning exercise have implemented a rudimentary job scraper that aggregates jobs from a few job listing sites and populates an index with some data ...

weixin_40007804的博客 975

Elasticsearch教程(32) ES 聚合查询后过滤 Distinct Group By Having功能

一、之前写的关于ES聚合的博客 Elasticsearch教程(3) ES聚合查询DSL Elasticsearch教程(4) High Level REST Client API 查询 聚合 分组 Elasticsearch教程(5) 指标聚合 SQL DSL JavaAPI Elasticsearch教程(6) 桶聚合Query DSL-Terms Aggregation Elasticsearch教程(10) ES term terms prefix 搜索 聚合查询 详细总结 Elasticsearc

Java Spring Elasticsearch 1万+

es多字段过滤数据 es范围查询和过滤一起

es多字段过滤数据 es范围查询和过滤一起

u011250186的博客 600
上一篇: jdk1.7环境使用presto
下一篇: ElasticSearch排序
SW_LCC
博客等级 码龄11年 4粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值