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查询 基础篇相关推荐

  1. mongodb模糊查询_我叫Mongo,收了「查询基础篇」,值得你拥有

    这是mongo第二篇「查询基础篇」,后续会连续更新6篇 mongodb的文章总结上会有一系列的文章,顺序是先学会怎么用,在学会怎么用好,戒急戒躁,循序渐进,跟着我一起来探索交流. 通过上一篇基础篇的介 ...

  2. 第6篇:SELECT查询基础篇

    第6篇:SELECT查询基础篇 DQL(Data QueryLanguage):数据查询语言,从数据库中获取数据的,按照DQL的语法给数据库发送一条指令,数据库按照需要返回数据 查询常量 SELECT ...

  3. sql语句查询——基础篇(1)

    1.基础语句查询: SELECT 列名称 FROM 表名称 SELECT * FROM 表名称 2.sql去重问题: 在表中,可能会包含重复值.这并不成问题,不过,有时您也许希望仅仅列出不同(dist ...

  4. ElasticSearch查询 第四篇:匹配查询(Match)

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...

  5. ElasticSearch实战系列五: ElasticSearch的聚合查询基础使用教程之度量(Metric)聚合

    Title:ElasticSearch实战系列四: ElasticSearch的聚合查询基础使用教程之度量(Metric)聚合 前言 在上上一篇中介绍了ElasticSearch实战系列三: Elas ...

  6. MySQL基础篇:子查询

    文章目录 概述 where型子查询 from型子查询 EXISTS型子查询 复制表子查询 概述 在某些情况下,当进行一个查询时,需要的条件或数据要用另一个select语句的结果,这个时候,就要用到** ...

  7. SQL Server调优系列基础篇(子查询运算总结)

    前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...

  8. mysql经典总结文章_MySQL基础篇(01):经典实用查询案例,总结整理

    MySQL基础篇(01):经典实用查询案例,总结整理 发布时间:2020-02-26 22:25:21 来源:51CTO 阅读:244 作者:知了一笑 本文源码:GitHub·点这里 || GitEE ...

  9. SQL Server 调优系列基础篇 - 子查询运算总结

    前言 前面我们的几篇文章介绍了一系列关于运算符的介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符.有兴 ...

最新文章

  1. html 内嵌xml数据库,在SQLite数据库中存储XML/HTML文件 - 可能吗?
  2. 【python教程入门学习】零基础想转行学python,过来人提醒大家几点
  3. 谜题39:您好,再见!
  4. 双光子荧光成像_有机双光子荧光染料在生物成像中的应用取得新进展
  5. c语言将两个文件合成一个,keil中怎么把两个c程序怎么同时同时编译生成一个hex文件...
  6. logstash向elasticsearch写入数据,如何指定多个数据template
  7. 用DIB位图显示图像
  8. 传智播客-刘意-java深入浅出精华版学习笔记Day01
  9. 通信中的“交织”技术
  10. html5 progressbar,jQuery进度条插件NUMBERPROGRESSBAR
  11. Zemax仿真中像质评价及方法
  12. 求取scores最近邻的方法之二开始新的实践Chorus
  13. SXF2019IP段合并
  14. 华为鲲鹏泰山服务器系统安装,鲲鹏处理器正式商用:浙江移动营业厅用上华为泰山服务器...
  15. Python 数据处理数据挖掘(五):线性回归
  16. 索尼Z2(L50t)刷CM12教程
  17. 次坐标从0开始_定位基础-坐标变换
  18. Vero praesentium odio suscipit dolor.Eos accusamus rem tempore.
  19. win10 中使用bat脚本关机,重启 代码
  20. 计算机pe病毒的感染过程,感染型PE病毒分析与专杀修复工具的开发.pdf

热门文章

  1. 向linux内核加入系统调用新老内核比較
  2. UVA 12166 Equilibrium Mobile
  3. flashback table肯定会造成rowid跟着修改
  4. POJ - 1966 Cable TV Network(最小割-最大流)
  5. CodeForces - 1109A Sasha and a Bit of Relax(思维+异或和,好题)
  6. CodeForces - 801C Voltage Keepsake(二分)
  7. 2018宁夏邀请赛 - Goldbach(米勒罗宾素数测试)
  8. wpf 开源框架_.NET Core跨平台基础框架:10 篇热文汇总
  9. 深度优先遍历算法-01小偷偷东西问题
  10. java数据同步处理_Java如何处理多线程的数据同步问题