ElasticSearch查询 基础篇
1. 查询表达式
查询表达式(Query DSL)是一种非常灵活又富有表现力的 查询语言。 Elasticsearch 使用它可以以简单的 JSON 接口来展现 Lucene 功能的绝大部分。在你的应用中,你应该用它来编写你的查询语句。它可以使你的查询语句更灵活、更精确、易读和易调试。
要使用这种查询表达式,只需将查询语句传递给 query
参数:
GET /_search
{"query": YOUR_QUERY_HERE
}
空查询(empty search) —{}
— 在功能上等价于使用 match_all
查询, 正如其名字一样,匹配所有文档:
GET /_search
{"query": {"match_all": {}}
}
查询语句的结构
一个查询语句的典型结构:
{QUERY_NAME: {ARGUMENT: VALUE,ARGUMENT: VALUE,...}
}
如果是针对某个字段,那么它的结构如下:
{QUERY_NAME: {FIELD_NAME: {ARGUMENT: VALUE,ARGUMENT: VALUE,...}}
}
2. 重要的查询
match_all 查询
match_all
查询简单的匹配所有文档。在没有指定查询方式时,它是默认的查询:
{ "match_all": {}}
match 查询
无论你在任何字段上进行的是全文搜索还是精确查询,match
查询是你可用的标准查询。
如果你在一个全文字段上使用 match
查询,在执行查询前,它将用正确的分析器去分析查询字符串:
{ "match": { "tweet": "About Search" }}
如果在一个精确值的字段上使用它,例如数字、日期、布尔或者一个 not_analyzed
字符串字段,那么它将会精确匹配给定的值:
{ "match": { "age": 26 }}
{ "match": { "date": "2014-09-01" }}
{ "match": { "public": true }}
{ "match": { "tag": "full_text" }}
multi_match查询
multi_match
查询可以在多个字段上执行相同的 match
查询:
{"multi_match": {"query": "full text search","fields": [ "title", "body" ]}
}
range 查询
range
查询找出那些落在指定区间内的数字或者时间:
{"range": {"age": {"gte": 20,"lt": 30}}
}
被允许的操作符如下:
gt
大于
gte
大于等于
lt
小于
lte
小于等于
term 查询
term
查询被用于精确值匹配,这些精确值可能是数字、时间、布尔或者那些 not_analyzed
的字符串:
{ "term": { "age": 26 }}
{ "term": { "date": "2014-09-01" }}
{ "term": { "public": true }}
{ "term": { "tag": "full_text" }}
term
查询对于输入的文本不 分析 ,所以它将给定的值进行精确查询。
terms 查询
terms
查询和 term
查询一样,但它允许你指定多值进行匹配。如果这个字段包含了指定值中的任何一个值,那么这个文档满足条件:
{ "terms": { "tag": [ "search", "full_text", "nosql" ] }}
和 term
查询一样,terms
查询对于输入的文本不分析。它查询那些精确匹配的值(包括在大小写、重音、空格等方面的差异)。
参考文档:https://www.elastic.co/guide/cn/elasticsearch/guide
ElasticSearch查询 基础篇相关推荐
- mongodb模糊查询_我叫Mongo,收了「查询基础篇」,值得你拥有
这是mongo第二篇「查询基础篇」,后续会连续更新6篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流. 通过上一篇基础篇的介 ...
- 第6篇:SELECT查询基础篇
第6篇:SELECT查询基础篇 DQL(Data QueryLanguage):数据查询语言,从数据库中获取数据的,按照DQL的语法给数据库发送一条指令,数据库按照需要返回数据 查询常量 SELECT ...
- sql语句查询——基础篇(1)
1.基础语句查询: SELECT 列名称 FROM 表名称 SELECT * FROM 表名称 2.sql去重问题: 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(dist ...
- ElasticSearch查询 第四篇:匹配查询(Match)
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...
- ElasticSearch实战系列五: ElasticSearch的聚合查询基础使用教程之度量(Metric)聚合
Title:ElasticSearch实战系列四: ElasticSearch的聚合查询基础使用教程之度量(Metric)聚合 前言 在上上一篇中介绍了ElasticSearch实战系列三: Elas ...
- MySQL基础篇:子查询
文章目录 概述 where型子查询 from型子查询 EXISTS型子查询 复制表子查询 概述 在某些情况下,当进行一个查询时,需要的条件或数据要用另一个select语句的结果,这个时候,就要用到** ...
- SQL Server调优系列基础篇(子查询运算总结)
前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...
- mysql经典总结文章_MySQL基础篇(01):经典实用查询案例,总结整理
MySQL基础篇(01):经典实用查询案例,总结整理 发布时间:2020-02-26 22:25:21 来源:51CTO 阅读:244 作者:知了一笑 本文源码:GitHub·点这里 || GitEE ...
- SQL Server 调优系列基础篇 - 子查询运算总结
前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...
最新文章
- html 内嵌xml数据库,在SQLite数据库中存储XML/HTML文件 - 可能吗?
- 【python教程入门学习】零基础想转行学python,过来人提醒大家几点
- 谜题39:您好,再见!
- 双光子荧光成像_有机双光子荧光染料在生物成像中的应用取得新进展
- c语言将两个文件合成一个,keil中怎么把两个c程序怎么同时同时编译生成一个hex文件...
- logstash向elasticsearch写入数据,如何指定多个数据template
- 用DIB位图显示图像
- 传智播客-刘意-java深入浅出精华版学习笔记Day01
- 通信中的“交织”技术
- html5 progressbar,jQuery进度条插件NUMBERPROGRESSBAR
- Zemax仿真中像质评价及方法
- 求取scores最近邻的方法之二开始新的实践Chorus
- SXF2019IP段合并
- 华为鲲鹏泰山服务器系统安装,鲲鹏处理器正式商用:浙江移动营业厅用上华为泰山服务器...
- Python 数据处理数据挖掘(五):线性回归
- 索尼Z2(L50t)刷CM12教程
- 次坐标从0开始_定位基础-坐标变换
- Vero praesentium odio suscipit dolor.Eos accusamus rem tempore.
- win10 中使用bat脚本关机,重启 代码
- 计算机pe病毒的感染过程,感染型PE病毒分析与专杀修复工具的开发.pdf
热门文章
- 向linux内核加入系统调用新老内核比較
- UVA 12166 Equilibrium Mobile
- flashback table肯定会造成rowid跟着修改
- POJ - 1966 Cable TV Network(最小割-最大流)
- CodeForces - 1109A Sasha and a Bit of Relax(思维+异或和,好题)
- CodeForces - 801C Voltage Keepsake(二分)
- 2018宁夏邀请赛 - Goldbach(米勒罗宾素数测试)
- wpf 开源框架_.NET Core跨平台基础框架:10 篇热文汇总
- 深度优先遍历算法-01小偷偷东西问题
- java数据同步处理_Java如何处理多线程的数据同步问题