单字段 模糊匹配查询与精准查询
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: 高级查询的更多相关文章

  1. Elasticsearch入门,看这一篇就够了

    目录 前言 可视化工具 kibana kibana 的安装 kibana 配置 kibana 的启动 Elasticsearch 入门操作 操作 index 创建 index 索引别名有什么用 删除索 ...

  2. ElasticSearch高级查询

    ElasticSearch高级查询 https://www.imooc.com/video/15759/0 ElasticSearch查询 1,子条件查询:特定字段查询所指特定值 1.1query c ...

  3. elasticsearch 高级查询

    高级查询 子条件查询 (特定字段查询所指特定值) 复合条件查询 (以一定的逻辑组合子条件查询) 一.子条件查询 子条件查询分为 query context.filter context 1.query ...

  4. ElasticSearch入门 第九篇:实现正则表达式查询的思路

    这是ElasticSearch 2.4 版本系列的第九篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  5. ElasticSearch入门 第五篇:使用C#查询文档

    这是ElasticSearch 2.4 版本系列的第五篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...

  6. 031 Spring Data Elasticsearch学习笔记---重点掌握第5节高级查询和第6节聚合部分

    Elasticsearch提供的Java客户端有一些不太方便的地方: 很多地方需要拼接Json字符串,在java中拼接字符串有多恐怖你应该懂的 需要自己把对象序列化为json存储 查询到结果也需要自己 ...

  7. Elasticsearch入门教程(六):Elasticsearch查询(二)

    原文:Elasticsearch入门教程(六):Elasticsearch查询(二) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...

  8. Elasticsearch入门教程(五):Elasticsearch查询(一)

    原文:Elasticsearch入门教程(五):Elasticsearch查询(一) 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...

  9. java整合Elasticsearch,实现crud以及高级查询的分页,范围,排序功能,泰文分词器的使用,分组,最大,最小,平均值,以及自动补全功能

    //为index创建mapping,index相当于mysql的数据库,数据库里的表也要给各个字段创建类型,所以index也要给字段事先设置好类型: 使用postMan或者其他工具创建:(此处我使用p ...

随机推荐

  1. 2.2.9静态同步synchronized方法与synchronized(class)代码块

    关键字synchronized还可以应用在static静态方法上,这样写那是对当前的*.java文件对应的class类进行持锁, 测试如下 package com.cky.bean; /** * Cr ...

  2. phpwind部署问题

    1. 提示"PDO_Mysql 未安装" wamp安装后,首选确保在wamp/php/ext/目录下存在"php_pdo.dll"和"php_pdo_ ...

  3. (最长不降子序列)最少拦截系统 -- hdu -- 1257

    http://acm.hdu.edu.cn/showproblem.php?pid=1257 最少拦截系统 Time Limit: 2000/1000 MS (Java/Others)    Memo ...

  4. C++ 中的异常机制分析

    C++异常机制概述 异常处理是C++的一项语言机制,用于在程序中处理异常事件.异常事件在C++中表示为异常对象.异常事件发生时,程序使用throw关键字抛出异常表达式,抛出点称为异常出现点,由操作系统 ...

  5. jQuery插件初级练习4答案

    html: $("p").log().css("color","red") jQuery: $.fn.extend({ log: funct ...

  6. PB函数大全【转自 http://blog.csdn.net/xiaoxian8023 】

    Abs()功能计算绝对值.语法Abs ( n )参数n:要得到绝对值的数值型变量或表达式返回值返回值的数据类型与n的数据类型相同,函数执行成功时返回n的绝对值.如果参数n的值为NULL,Abs()函数 ...

  7. JSON知识介绍

    JSON资料整理   目录 1.什么是json 2.json语法规则 3.json基础结构 4.json基础示例 5.JSON和XML比较 6. .NET操作JSON 原始方式 通用方式 内置方式 契 ...

  8. Redis数据库介绍

    引言 redis是一个开源的.使用C语言编写的.支持网络交互的.可基于内存也可持久化的Key-Value数据库. redis数据结构 redis是一种高级的key:value存储系统,其中value支 ...

  9. 在线安装WordPress更新 失败的解决办法

    1.  登录ftp登录不上 , 总是登录失败 在服务器上新建了一个vsftpd服务器,并设置了相应的虚拟用户,修改chroot到网站目录 相关连接:https://blog.csdn.net/zhan ...

  10. 使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能

    先来看看下面实时效果演示: 用户点击编辑时,在点击行下动态产生一行.编辑铵钮变为disabled.新产生的一行有更新和取消的铵钮,点击“取消”铵钮,删除刚刚动态产生的行.编辑铵钮状态恢复. 更新与删除 ...