5.elasticsearch中查询条件
目录
一、URI查询
(这里在kibana中可以自己用用,实际上,下文中的DSL查询语句作用会更大些)
通过在URI后面添加参数,实现一些简单条件的查询
- q指定查询语句,使用Query String Syntax
- df指定默认字段,不指定查询所有字段
- sort排序/from和size用于分页
- profile可以用来查看是如何被执行的
指定字段、泛查询
分组和phrase
分组查询需要使用(),将查询条件括起来,里面字段默认是or的关系,查出来的文档有其一个就会被查出来
phrase查询需要使用"",里面的关系是and,表示查出来的文档都拥有里面的词,并且按照词组的顺序排列
Bool条件
在term查询中添加指定bool条件
-
使用大写AND/OR/NOT
-
&&/||/!
must条件
在term查询中可添加must和must_not条件
- +表示must
- -表述must_not
范围查询
- []闭区间
- {}开区间
通配符查询
- ?代表一个字符,*代表0或多个
正则表达式
模糊匹配与近似查询
二、RequestBody&DSL
DSL:Query Domain Search Language
ignore_unavailable
ignore_unavailable=true,可以忽略尝试访问不存在的索引“404_idx”导致的报错
profile
返回结果中添加此次查询分词等细节
explain
返回每个文档结果中添加此次查询算分的细节
query
查询条件
from、size
分页,from:偏移量,size:每页大小
sort
_source
用来过滤返回结果中需要显示的字段
script_fields
脚本字段,用来生产一个新的返回字段,生成规则写在script中
match
匹配查询,如果此字段设置了分词,会分词查询
match_phrase
短语查询,不会分词查询
term
查询的字段不论是text还是keyword,不会将输入的文本进行分词处理
但是目标字段可能会被分词,所以会导致查不到想要的结果,此时建议用keyword类型的字段查询
terms
查询字段内包含多个关键词的文档
multi_match
一个字符串,在多个字段中查询
query String
实现多字符串,多字段查询
Simple query String
- 类似Query String,但是会忽略错误的语法,同时只支持部分查询语法
- 不支持 AND OR NOT 会当作字符串处理
- Term之间默认的关系是OR,可以指定default_operate
- 支持部分逻辑
- +替代AND
- |替代OR
- -替代NOT
bool 查询
它是一种嵌套结构,里面可以嵌套上述各种查询逻辑,它本身包含三种逻辑结构。must、should、must_not
filter
给查询添加过滤条件,过滤结构化数据
- 好处是可以把查询结果添加到缓存中
- 还有一个作用是过滤的结果不会算分
__EOF__

本文作者:赛博朋克V
本文链接:https://www.cnblogs.com/pengliblogs/p/17946805.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/pengliblogs/p/17946805.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
合集:
elasticsearch
分类:
elasticsearch总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~