ElasticSearch入门3: 高级查询
- 单字段 模糊匹配查询与精准查询
- postman请求
- POST 127.0.0.1:9200/book/_search
- 请求json:
- {
- "query":{
- "match":{
- "name":"晓明9"
- }
- }
- }
- 注:match 模糊查询的标识 :查询内容自动拆分成分词来查询
若match 改为 match_phrase :精准查询 具体可以查看 http://www.cnblogs.com/liuxiaoming123/p/8119217.html
- 响应结果:
- {
- "took": 51,
- "timed_out": false,
- "_shards": {
- "total": 5,
- "successful": 5,
- "skipped": 0,
- "failed": 0
- },
- "hits": {
- "total": 4,
- "max_score": 0.5753642,
- "hits": [
- {
- "_index": "book",
- "_type": "novel",
- "_id": "1",
- "_score": 0.5753642,
- "_source": {
- "name": "晓明1",
- "country": "china1",
- "age": 26,
- "date": "1992-08-08"
- }
- },
- {
- "_index": "book",
- "_type": "novel",
- "_id": "5",
- "_score": 0.28363907,
- "_source": {
- "name": "晓明",
- "country": "china",
- "age": 26,
- "date": "1992-08-08"
- }
- },
- {
- "_index": "book",
- "_type": "novel",
- "_id": "8",
- "_score": 0.28363907,
- "_source": {
- "name": "晓明",
- "country": "china",
- "age": 26,
- "date": "1992-08-08"
- }
- },
- {
- "_index": "book",
- "_type": "novel",
- "_id": "9",
- "_score": 0.23911436,
- "_source": {
- "name": "晓明9",
- "country": "china9",
- "age": 26,
- "date": "1992-08-08"
- }
- }
- ]
- }
- }
多字段 模糊匹配查询与精准查询
- postman请求URL:
- POST 127.0.0.1:9200/book/_search
- 请求json字符串:
- {
- "query":{
- "multi_match":{
- "query":"晓明china",
- "fields":["name","country"]
- }
- }
- }
- 注:multi_match为指定多字段匹配
- 响应结果:
- {
"took": 42,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 0.5753642,
"hits": [
{
"_index": "book",
"_type": "novel",
"_id": "1",
"_score": 0.5753642,
"_source": {
"name": "晓明1",
"country": "china1",
"age": 26,
"date": "1992-08-08"
}
},
{
"_index": "book",
"_type": "novel",
"_id": "5",
"_score": 0.47000363,
"_source": {
"name": "晓明",
"country": "china",
"age": 26,
"date": "1992-08-08"
}
},
{
"_index": "book",
"_type": "novel",
"_id": "8",
"_score": 0.47000363,
"_source": {
"name": "晓明",
"country": "china",
"age": 26,
"date": "1992-08-08"
}
},
{
"_index": "book",
"_type": "novel",
"_id": "9",
"_score": 0.23911436,
"_source": {
"name": "晓明9",
"country": "china9",
"age": 26,
"date": "1992-08-08"
}
}
]
}
}
- 语法查询
未指定字段:
- postman请求:
- POST 127.0.0.1:9200/book/_search
- 请求json字符串:
- {
- "query":{
- "query_string":{
- "query":"(ElasticSearch AND 入门) OR SpringBoot"
- }
- }
- }
- 返回结果:
- {
- "took": 21,
- "timed_out": false,
- "_shards": {
- "total": 5,
- "successful": 5,
- "skipped": 0,
- "failed": 0
- },
- "hits": {
- "total": 2,
- "max_score": 2.634553,
- "hits": [
- {
- "_index": "book",
- "_type": "novel",
- "_id": "9",
- "_score": 2.634553,
- "_source": {
- "name": "ElasticSearch 入门",
- "country": "china9",
- "age": 26,
- "date": "1992-08-08"
- }
- },
- {
- "_index": "book",
- "_type": "novel",
- "_id": "1",
- "_score": 0.2876821,
- "_source": {
- "name": "SpringBoot",
- "country": "china1",
- "age": 26,
- "date": "1992-08-08"
- }
- }
- ]
- }
- }
语法查询
指定字段:
- postman请求:
- POST 127.0.0.1:9200/book/_search
- 请求json字符串:
- {
- "query":{
- "query_string":{
- "query":"SpringBoot OR 中国",
- "fields":["name","country"]
- }
- }
- }
- 响应结果:
- {
- "took": 11,
- "timed_out": false,
- "_shards": {
- "total": 5,
- "successful": 5,
- "skipped": 0,
- "failed": 0
- },
- "hits": {
- "total": 1,
- "max_score": 0.8630463,
- "hits": [
- {
- "_index": "book",
- "_type": "novel",
- "_id": "1",
- "_score": 0.8630463,
- "_source": {
- "name": "SpringBoot",
- "country": "中国",
- "age": 26,
- "date": "1992-08-08"
- }
- }
- ]
- }
- }
(结构化数据的查询)
指定字段查询:(term)
- postman请求:
- POST 127.0.0.1:9200/book/_search
- 请求json字符串:
- {
- "query" :
- {
- "term" : {"name" : "springboot"}
- }
- }
- 响应结果:
- {
- "took": 4,
- "timed_out": false,
- "_shards": {
- "total": 5,
- "successful": 5,
- "skipped": 0,
- "failed": 0
- },
- "hits": {
- "total": 1,
- "max_score": 0.2876821,
- "hits": [
- {
- "_index": "book",
- "_type": "novel",
- "_id": "1",
- "_score": 0.2876821,
- "_source": {
- "name": "SpringBoot",
- "country": "中国",
- "age": 26,
- "date": "1992-08-08"
- }
- }
- ]
- }
- }
注:若查询英文时 应全字母小写 精确查询
若查询中文时 应按单个字来查询
范围查询:
注:json请求字符串中部分字段的含义
range:范围关键字
gte 大于等于
lte 小于等于
gt 大于
lt 小于
now 当前时间
- postman请求:
- 127.0.0.1:9200/book/_search
- 请求json字符串:
- {
- "query" :
- {
- "range" : {
- "date" : {
- "gte":"2017-01-01",
- "lte":"now"
- }
- }
- }
- }
- 响应结果:
- {
- "took": 7,
- "timed_out": false,
- "_shards": {
- "total": 5,
- "successful": 5,
- "skipped": 0,
- "failed": 0
- },
- "hits": {
- "total": 1,
- "max_score": 1,
- "hits": [
- {
- "_index": "book",
- "_type": "novel",
- "_id": "9",
- "_score": 1,
- "_source": {
- "name": "ElasticSearch 入门",
- "country": "china9",
- "age": 28,
- "date": "2017-08-08"
- }
- }
- ]
- }
- }
Filter Context(对数据进行过滤)
- postman请求:
- POST 127.0.0.1:9200/book/_search
- 请求json字符串:
- {
- "query" : {
- "bool" : {
- "filter" : {
- "term":{
- "age":20
- }
- }
- }
- }
- }
- 响应结果:
- {
- "took": 24,
- "timed_out": false,
- "_shards": {
- "total": 5,
- "successful": 5,
- "skipped": 0,
- "failed": 0
- },
- "hits": {
- "total": 1,
- "max_score": 0,
- "hits": [
- {
- "_index": "book",
- "_type": "novel",
- "_id": "1",
- "_score": 0,
- "_source": {
- "name": "SpringBoot",
- "country": "中国",
- "age": 20,
- "date": "1992-08-08"
- }
- }
- ]
- }
- }
注: boost 固定响应结果分数的值
- postman请求:
- POST 127.0.0.1:9200/_search
- 请求json字符串:
- {
- "query" : {
- "constant_score" : {
- "filter" : {
- "match":{
- "name":"晓明"
- }
- },
- "boost":2
- }
- }
- }
- 响应结果:
- {
- "took": 11,
- "timed_out": false,
- "_shards": {
- "total": 8,
- "successful": 8,
- "skipped": 0,
- "failed": 0
- },
- "hits": {
- "total": 2,
- "max_score": 2,
- "hits": [
- {
- "_index": "book",
- "_type": "novel",
- "_id": "5",
- "_score": 2,
- "_source": {
- "name": "晓明",
- "country": "china",
- "age": 26,
- "date": "1992-08-08"
- }
- },
- {
- "_index": "book",
- "_type": "novel",
- "_id": "8",
- "_score": 2,
- "_source": {
- "name": "晓明8",
- "country": "china",
- "age": 26,
- "date": "1992-08-08"
- }
- }
- ]
- }
- }
should关键词:或的关系
若should改为must 关键词则表示 和的关系
- postman请求:
- POST 127.0.0.1:9200/_search
- 请求json字符串:
- 1.shuld:
- {
- "query" : {
- "bool" : {
- "should" : [
- {
- "match":{"name":"springboot"}
- },
- {
- "match":{"country":"中国"}
- }
- ]
- }
- }
- }
- 2.must:
- {
- "query" : {
- "bool" : {
- "must" : [
- {
- "match":{"name":"springboot"}
- },
- {
- "match":{"country":"中国"}
- }
- ]
- }
- }
- }
- 3.must filter:
- {
"query" : {
"bool" : {
"must" : [
{
"match":{"name":"springboot"}
},
{
"match":{"country":"中国"}
}
],
"filter":[
{
"term":{
"age":20
}
}
]
}
}
}
- 4.must_not:
{
"query" : {
"bool" : {
"must_not" : {
"term":{"age":20}
}
}
}
}
ElasticSearch入门3: 高级查询的更多相关文章
- Elasticsearch入门,看这一篇就够了
目录 前言 可视化工具 kibana kibana 的安装 kibana 配置 kibana 的启动 Elasticsearch 入门操作 操作 index 创建 index 索引别名有什么用 删除索 ...
- ElasticSearch高级查询
ElasticSearch高级查询 https://www.imooc.com/video/15759/0 ElasticSearch查询 1,子条件查询:特定字段查询所指特定值 1.1query c ...
- elasticsearch 高级查询
高级查询 子条件查询 (特定字段查询所指特定值) 复合条件查询 (以一定的逻辑组合子条件查询) 一.子条件查询 子条件查询分为 query context.filter context 1.query ...
- ElasticSearch入门 第九篇:实现正则表达式查询的思路
这是ElasticSearch 2.4 版本系列的第九篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- ElasticSearch入门 第五篇:使用C#查询文档
这是ElasticSearch 2.4 版本系列的第五篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- 031 Spring Data Elasticsearch学习笔记---重点掌握第5节高级查询和第6节聚合部分
Elasticsearch提供的Java客户端有一些不太方便的地方: 很多地方需要拼接Json字符串,在java中拼接字符串有多恐怖你应该懂的 需要自己把对象序列化为json存储 查询到结果也需要自己 ...
- Elasticsearch入门教程(六):Elasticsearch查询(二)
原文:Elasticsearch入门教程(六):Elasticsearch查询(二) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...
- Elasticsearch入门教程(五):Elasticsearch查询(一)
原文:Elasticsearch入门教程(五):Elasticsearch查询(一) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...
- java整合Elasticsearch,实现crud以及高级查询的分页,范围,排序功能,泰文分词器的使用,分组,最大,最小,平均值,以及自动补全功能
//为index创建mapping,index相当于mysql的数据库,数据库里的表也要给各个字段创建类型,所以index也要给字段事先设置好类型: 使用postMan或者其他工具创建:(此处我使用p ...
随机推荐
- javascript总结集合
前言:下面的总结都是自己测试过的,绝大多数都是没问题的,但是不敢保证一定全面,还需要诸君自己独立思考: 1)基础:在nodejs里全局对象是global,而网页里js的全局对象是window:对于所有 ...
- keras model.compile(loss='目标函数 ', optimizer='adam', metrics=['accuracy'])
深度学习笔记 目标函数的总结与整理 目标函数,或称损失函数,是网络中的性能函数,也是编译一个模型必须的两个参数之一.由于损失函数种类众多,下面以keras官网手册的为例. 在官方keras.io里 ...
- 5W2H+35问
之前看到的一个非常好且全面的做事方法论.
- 成功解决在Python文件上右键菜单无“Edit with IDLE”选项
我电脑是Win7旗舰版,之前电脑上安装的是Python2.6版本的,前两天为了体验一下Microsoft Excel与Python之间互操作, 下载并安装了DataNitro,在安装的时候脑残的安装了 ...
- 入手IntelliJ IDEA 常用配置
Idea常用设置 下载地址:https://www.jetbrains.com/idea/ 激活服务器:http://idea.iteblog.com/key.php 代码补全取消区分大小写 Inte ...
- POJ3111 K Best 2017-05-11 18:12 31人阅读 评论(0) 收藏
K Best Time Limit: 8000MS Memory Limit: 65536K Total Submissions: 10261 Accepted: 2644 Case Time ...
- Android-Java静态代码块&局部代码块
静态代码块: 静态代码块什么时候执行,是由当前类被加载进内存的时候,什么时候当前类被加载进内存? 答:例如 描述好了Student对象,当 new Student(); 的时候,第一步:是把Stude ...
- mysql数据导入导出方法总结
MySQL数据备份还原方式总结: 一.将数据导入到指定的数据库 第一种导入方式: (linux下和Windows 下语法是一样的,只是路径的书写方式不同而已) 1.创建一个空数据库 2.进入MySQL ...
- 应该知道的Linux技巧【转】
这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?>—— Linux用户 ...
- 查看指定spid的脚本当前运行情况和状态
USE MasterGO declare @spid int; select @spid = 419--null:all ; ;WITH DATA(spid,blockRelationship,blo ...