本文为博主原创,未经允许不得转载:

  

1.  查询所有:match_all

GET /es_db/_doc/_search
{
"query":{
"match_all":{}
}
}

2.有查询条件

  2.1 模糊匹配

  模糊匹配主要是针对文本类型的字段,文本类型的字段会对内容进行分词,对查询时,也会对搜索条件进行分词,然后通过倒排索引查找到匹配的数据,模糊匹配主要通过match等参数来实现。

  match : 通过match关键词模糊匹配条件内容,,模糊匹配,需要指定字段名,但是输入会进行分词

  prefix : 前缀匹配

  regexp : 通过正则表达式来匹配数据

  match条件还支持以下参数:
    query : 指定匹配的值

    operator : 匹配条件类型
      and : 条件分词后都要匹配

      or : 条件分词后有一个匹配即可(默认)
    minmum_should_match : 指定最小匹配的数量
  

  根据备注信息模糊查询 match, match会根据该字段的分词器,进行分词查询
  

GET /es_db/_doc/_search
{
"from": 0,
"size": 1,
"query": {
"match": {
"address": "玄武湖公园"
}
}
}

  多字段模糊匹配查询与精准查询 multi_match

POST /es_db/_doc/_search
{
"query": {
"multi_match": {
"query": "张三",
"fields": [
"address",
"name"
]
}
}
}

 类比 mysql :

SQL: select * from student where name like '%张三%' or address like '%张 三%
  2.2 精确匹配
    term : 单个条件相等,,这个输入不会进行分词

    terms : 单个字段属于某个值数组内的值
    range : 字段属于某个范围内的值
    exists : 某个字段的值是否存在
    ids : 通过ID批量查询

     

    根据名称精确查询姓名 term, term查询不会对字段进行分词查询,会采用精确匹配
    注意: 采用term精确查询, 查询字段映射类型属于为keyword.
POST /es_db/_doc/_search
{
"query": {
"term": {
"name": "admin"
}
}
}

  

   2.3 组合条件查询
  

  组合条件查询是将叶子条件查询语句进行组合而形成的一个完整的查询条件
  constant_score : 不计算相关度评分

  bool : 各条件之间有and,or或not的关系:
    1.must : 各个条件都必须满足,即各条件是and的关系
    2. should : 各个条件有一个满足即可,即各条件是or的关系
    3. must_not : 不满足所有条件,即各条件是not的关系
    4. filter : 不计算相关度评分,它不计算_score即相关度评分,效率更高
  

  ES中索引的数据都会存储一个_score分值,分值越高就代表越匹配。另外关于某个搜索的分值计算还是很复杂的,因此也需要一定的时间。
  must/filter/shoud/must_not 等的子条件是通过 term/terms/range/ids/exists/match 等叶子条件为参数的
   查询示例:
POST /es_db/_doc/_search
{
"query": {
"query_string": {
"query": "admin OR 南京",
"fields": [
"name",
"address"
]
}
}
}
  分页、输出字段、排序综合查询
POST /es_db/_doc/_search
{
"query": {
"range": {
"age": {
"gte": 25,
"lte": 28
}
}
},
"from": 0,
"size": 2,
"_source": [
"name",
"age",
"book"
],
"sort": {
"age": "desc"
}
}
 
    
 
 

Elasticsearch 索引与文档的常用操作总结二:复杂条件查询的更多相关文章

  1. 007-elasticsearch5.4.3【一】概述、Elasticsearch 访问方式、Elasticsearch 面向文档、常用概念

    一.概述 Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上. Elasticsearch 也是使用 Java 编写的,它的内部使用 L ...

  2. elasticsearch查询篇索引映射文档数据准备

    elasticsearch查询篇索引映射文档数据准备 我们后面要讲elasticsearch查询,先来准备下索引,映射以及文档: 我们先用Head插件建立索引film,然后建立映射 POST http ...

  3. Elastic Stack 笔记(四)Elasticsearch5.6 索引及文档管理

    博客地址:http://www.moonxy.com 一.前言 在 Elasticsearch 中,对文档进行索引等操作时,既可以通过 RESTful 接口进行操作,也可以通过 Java 也可以通过 ...

  4. Elasticsearch 7.x文档基本操作(CRUD)

    官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs.html 1.添加文档 1.1.指定文档ID PUT ...

  5. es之对文档进行更新操作

    5.7.1:更新整个文档 ES中并不存在所谓的更新操作,而是用新文档替换旧文档: 在内部,Elasticsearch已经标记旧文档为删除并添加了一个完整的新文档并建立索引.旧版本文档不会立即消失 ,但 ...

  6. elasticsearch 基础 —— 分布式文档存储原理

    路由一个文档到一个分片中 当索引一个文档的时候,文档会被存储到一个主分片中. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片  ...

  7. ElasticSearch 集群基本概念及常用操作汇总(建议收藏)

    内容来源于本人的印象笔记,简单汇总后发布到博客上,供大家需要时参考使用. 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 目录: Elas ...

  8. shift+alt 可对notepadplusplus 打开的文档进行列操作

    shift+alt 可对notepadplusplus 打开的文档进行列操作

  9. flask - fastapi (python 异步API 框架 可以自动生成swagger 文档) 常用示例 以及整合euraka nacos

    flask - fastapi    (python 异步API 框架  可以自动生成swagger 文档)  常用示例: 之前使用 flask 需要手动写文档, 这个可以自动生成, fastapi ...

  10. Elasticsearch技术解析与实战(二)文档的CRUD操作

    启动Elasticsearch和kibana 访问Elasticsearch:http://localhost:9200/?pretty 访问kibana:http://localhost:5601 ...

随机推荐

  1. Leader笔记:程序员小团队透明和信任管理

    今天想跟大家分享一下小团队的透明管理,这也是一个管理技巧,相信很多Leader身份的同学都了解到主管有很大的一个优势,就是在组织内拥有了信息不对称能力,Leader能够听到和了解到完全不同层面上的内容 ...

  2. Spring Boot内置的一些工具类

    1.断言Assert工具类 // 要求参数 object 必须为非空(Not Null),否则抛出异常,不予放行 // 参数 message 参数用于定制异常信息. void notNull(Obje ...

  3. 测试member和coupon的远程调用

    测试member和coupon的远程调用 想要获取当前会员领取到的所有优惠券.先去注册中心找优惠券服务, 注册中心调一台优惠券服务器给会员,会员服务器发送请求给这台优 惠券服务器,然后对方响应. Fe ...

  4. 谷粒学院通用工具类R类

    import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.HashMap; import ...

  5. 从零玩转Docker之docker-compose快捷部署中间件-dockercompose2

    title: 从零玩转Docker之docker-compose快捷部署中间件 date: 2023-04-04 17:35:18.035 updated: 2023-05-13 23:08:09.5 ...

  6. Keepass调用Xshell、SecureCRT、RDP、Putty的方法(一劳永逸版)

    依次点击"工具"--"选项"--"集成"--"网址替代"--"添加"--添加"方案&quo ...

  7. Salesforce LWC学习(四十六) record-picker组件浅谈

    本篇参考: https://developer.salesforce.com/docs/platform/lwc/guide/reference-graphql.html https://develo ...

  8. 我的第一个JavaWeb程序!!!

  9. GetView介绍 以及 GetxController生命周期

    etView 只是对已注册的 Controller 有一个名为 controller 的getter的 const Stateless 的 Widget,如果我们只有单个控制器作为依赖项,那我们就可以 ...

  10. 撬动百亿VRAR产业,让VR们“造”起来

    摘要:四大亮点抢先看,12月28-29日不见不散! 随着5G商用的加速及元宇宙.数字人等概念的兴起,虚拟现实技术作为未来世界的入口,正受到越来越多的关注,也将成为驱动数字经济发展和产业转型升级的关键技 ...