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

  

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. MybatisPlus属性自动填充

    阿里巴巴开发规范,对于每一张表都因该有id(主键),createTime(创建时间),updateTime(修改时间)这三个字段 主键ID我们可以使用自增,或者雪花算法 创建时间修改时间我们可以使用数 ...

  2. HDU 1108

    Big Number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  3. 2023年最后一个工作日,当 hr总监找上我协商赔偿

    今天是2023年最后一个工作日,hr 总监找上我协商赔偿一事,忆往昔三年前,公司刚融资1个亿,意气风发,博主入职即为公司巅峰,高级开发岗,14薪,各种福利,加班另算加班费,业务主要服务于众多500强集 ...

  4. EvilBox : ONE - WriteUp

    EvilBox : ONE 信息收集 扫描网段内存活主机,得到目标 nmap 进一步收集有效信息,只开放了22和80 访问80的页面没有什么有效信息 接着扫一下目录, 没有敏感的文件 在robots中 ...

  5. 劫持 PE 文件:新建节表并插入指定 DLL 文件

    PE格式简介 PE(Portable Executable)格式,是微软Win32环境可移植可执行文件(如exe.dll.vxd.sys和vdm等)的标准文件格式.PE格式衍生于早期建立在VAX(R) ...

  6. Linux发行版的基础目录名称、命名法则及功能规定

    罗列Linux发行版的基础目录名称命名法则及功用规定 目录描述 /主层次 的根,也是整个文件系统层次结构的根目录 /bin存放在单用户模式可用的必要命令二进制文件,所有用户都可用,如 cat.ls.c ...

  7. 【Python】【OpenCV】OCR识别(二)——透视变换

    对于OCR技术在处理有角度有偏差的图像时是比较困难的,而水平的图像使用OCR识别准确度会高很多,因为文本通常是水平排列的,而OCR算法一般会假设文本是水平的. 针对上述情况,所以我们在处理有角度的图象 ...

  8. 【Python】人工智能-机器学习——不调库手撕深度网络分类问题

    1. 作业内容描述 1.1 背景 数据集大小150 该数据有4个属性,分别如下 Sepal.Length:花萼长度(cm) Sepal.Width:花萼宽度单位(cm) Petal.Length:花瓣 ...

  9. 国内AI大模型 VS chatgpt (20)-- H265/H264有何不同,h265有什么优势?

    H265/H264有何不同,h265有什么优势? 文心一言: H.264和H.265是两种不同的视频编码标准,它们在压缩质量和带宽需求方面有所不同. H.264是一种高效的视频压缩标准,它的编码单位是 ...

  10. picker组件增加搜索item条目的功能

    picker组件顶部有搜索框,能搜索条目,如果条目很多的时候,上下翻很麻烦了,而且不容易找到,可以先全查,然后js搜索 wxml <button bindtap="openFlag&q ...