elasticsearch-es search 查询
elasticsearch-es search 查询
- elasticsearch-es search 搜索
- 准备
- 基于url
- 基于请求主体 query DSL
- filter过滤器 DSL
- term精确查询
- match 查询
- bool查询
- 词组查询
- 组合查询或复合查询
准备
准备数据:
POST /user/_doc/1
{"name": "小明","age": 12,"birth": "2020-12-11"
}POST /user/_doc/2
{"name": "小西","age": 25,"birth": "2020-07-11"
}POST /user/_doc/3
{"name": "大明","age": 120,"birth": "2020-05-10"
}
基于url
POST /user/_search?q=name:'小明'//排序
POST /user/_search?q=name:'明'&sort=birth:asc//_source指定返回字段
POST /user/_search?q=name:'小明'&_source=name,age//分页
POST /user/_search?from=0&size=2
基于请求主体 query DSL
POST /user/_search
{"query": {"match_all": {}}
}//分页
POST /user/_search
{"query": {"match_all": {}},"from": 1,"size": 2
}//指定返回字段
POST /user/_search
{"query": {"match_all": {}},"_source": ["name", "age"]
}//排序
POST /user/_search
{"query": {"match_all": {}},"sort": [{"birth": {"order": "desc"},"age": {"order": "desc"}}]
}
filter过滤器 DSL
POST /user/_search
{"query": {"bool": {"filter": [{"term": {"name.keyword": "大明"}}]}}
}
term精确查询
精确查询,通常用于对keyword和有精确值的字段进行查询,不会对进行查询的文本进行分词操作
POST /user/_search
{"query": {"term": {"name": {"value": "小明"}}}
}//对比前一种, 前一种可以查询不到结果
POST /user/_search
{"query": {"term": {"name.keyword": {"value": "小明"}}}
}// terms 查询多个词条
POST /user/_search
{"query": {"terms": {"name": ["小明", "小西"]}}
}
match 查询
全文搜索, 通常用于对text类型字段的查询,会对进行查询的文本先进行分词操作
bool查询
POST /user/_search
{"query": {"match": {"name": {"query": "小明 hello","operator": "and"}}}
}
如果直接搜索 小明 hello
, elasticsearch 会搜索小明 OR hello
,不过修改 operator 后,会匹配同时存在这两个词的结果
词组查询
和查询词一致才返回结果
POST /user/_search
{"query": {"match_phrase": {"name": "小明"}}
}
组合查询或复合查询
POST /user/_search
{"query": {"bool": {"must": [{"term": {"name.keyword": {"value": "大明"}}}],"should": [{"range": {"age": {"gte": 10,"lte": 200}}}]}}
}
elasticsearch-es search 查询相关推荐
- elasticsearch(es)高级查询api
yml配置 #es配置 spring:elasticsearch:rest:uris: 192.168.16.188:9200 添加依赖 <dependency><groupId&g ...
- ES(Elasticsearch)基本查询总结(含docker安装,python操作)
全栈工程师开发手册 (作者:栾鹏) 架构系列文章 官网:https://www.elastic.co/guide/index.html 搜索语法:https://www.elastic.co/guid ...
- ELK——ElasticSearch(ES) LogStash Kibana 范围查询 经纬度
Spring Boot 搭建 ELK,这才是正确看日志的方式! ES地理边界聚合官网 ES API官网 一.快速入门实战 二.核心语法集群高可用实战演练 三.集群架构原理与搜索技术深入 四.底层原理与 ...
- java使用ElasticSearch的scroll查询,高效的解决es查询数量的限制。
java使用ElasticSearch的scroll查询,高效的解决es查询数量的限制. 一.为什么要使用ES的scroll (1)首先我们要明白es的查询机制:ES的搜索是分2个阶段进行的,即Que ...
- es java match_java操作elasticsearch实现条件查询(match、multiMatch、term、terms、reange)...
1.条件match query查询 //条件查询match query @Testpublic void test10() throwsUnknownHostException {//1.指定es集群 ...
- Elasticsearch(es) 查询语句语法详解
Elasticsearch 查询语句采用基于 RESTful 风格的接口封装成 JSON 格式的对象,称之为 Query DSL.Elasticsearch 查询分类大致分为全文查询.词项查询.复合查 ...
- Elasticsearch 实战 - 第四讲:ES 高级查询
Elasticsearch 实战 - 第四讲:ES 高级查询 Elasticsearch 实战系列文章: 一.高级查询 1.简介 2.结果排序 3.分页查询 4.检索查询 5.关键字查询 6.高亮显示 ...
- es java 模糊查询_java使用elasticsearch进行模糊查询-已在项目中实际应用
java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...
- 【ES笔记02】ElasticSearch数据库之查询操作(match、must、must_not、should、_source、filter、range、exists、ids、term、terms)
这篇文章,主要介绍ElasticSearch数据库之查询操作(match.must.must_not.should._source.filter.range.exists.ids.term.terms ...
- elasticsearch java api查询
/** * 系统环境: vm12 下的centos 7.2 * 当前安装版本: elasticsearch-2.4.0.tar.gz */ QueryBuilder 是es中提供的一个查询接口, 可以 ...
最新文章
- 静态call 动态call LINK
- history.back(-1)和history.go(-1)的区别
- .NET Core 迁移躺坑记续集--Win下莫名其妙的超时
- activity与service 使用Handler Messenger数据传递
- python中lowerright_python字符串,从入门到高阶看这篇就够了
- 安卓安装kali linux之Termux
- ca 手机抓包_手机 https 抓包---Charles篇
- 科技感html页面源码,科技感十足的403html模板动态源码
- python十六进制转为二进制_Python进制转换(二进制、十进制和十六进制)
- CoDeSys开发经验总结
- 回顾一年的工作历程_但回首这一年来的工作经历
- 车牌识别分割定位_解析车牌识别系统有什么优势?
- 《明日方舟》游戏分析
- Linux软件的安装
- 小猫踢足球-第14届蓝桥杯STEMA测评Scratch真题精选
- 基于matlab的多路BPSK调制—为什么采样率=码元速率x一个码元周期内对码元的采样点数
- JMeter学习(四)使用JMeter的HTTP代理服务器实现抓包功能
- 练习-编写求阶乘函数
- 实例:时间事件日志分析
- android应用商店升级标准,Android 跳转应用市场更新及评分