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

  

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. Selenium-ActionChains动作链(针对鼠标、滚轮等操作

    https://www.selenium.dev/documentation/webdriver/actions_api/ 注意:对于滚轮的操作,只支持chrome浏览器,且selenium版本在4. ...

  2. PersistenceException 持久性异常

    首先查看他提供的错误信息 检查pom.xml文件,查看是否有: 确保文件夹是这种xml格式的 操作maven  >>>>clean 和compile       进行清理和重新 ...

  3. 子类Dog根据自己的需要,重写了Animal方法

    子类Dog根据自己的需要,重写了Animal方法 package com.guoba.method; class Animal{ public void move(){ System.out.prin ...

  4. 三种方式MD5加密

    1.直接生成(标准的MD5加密) 选择函数助手,选择__digest,填写算法和密码,点击生成 2.开发直接给的jar包 步骤:a.从测试计划导入jar包 或 放在jmeter的lib\ext目录读取 ...

  5. ASR项目实战-任务队列在文件转写特性中的应用

    转写时长超出60秒的语音文件,业界的竞品通常会使用创建异步转写任务的方式来提供支持. 一个简单.直接的实现方案,即: 网关服务接收到来自客户的转写请求时,将任务信息持久化至任务队列中. 由算法服务的实 ...

  6. linux云服务器病毒处理

    阿里云服务器被挖矿病毒入侵,CPU跑满,需要先停止相关进程.为了根除病毒,还需要 解决系统的后门问题(这部分听从阿里云工程师的建议备份系统盘快照后重置系统,再通过快照恢复数据) 然而重置系统后依然存在 ...

  7. ASR项目实战-交付过程中遇到的疑似内存泄漏问题

    基于Kaldi实现语音识别时,需要引入一款名为OpenFST的开源软件,本文中提到的内存问题,即和这款软件相关. 考虑到过程比较曲折,内容相对比较长,因此先说结论. 在做长时间的语音识别时,集成了Ka ...

  8. C语言之输出孪生素数

    1.题目内容: 孪生素数是指间隔为 2 的相邻素数,例如最小的孪生素数对是3和5,5和7也是(5虽重复但算作2组). 2.输入格式: 输入N,找出2至N之间的孪生素数的组数. 这里要注意输入的N不要超 ...

  9. C# 成为2023年度编程语言之王

    原文发表在公众号 腾讯云开发者:https://mp.weixin.qq.com/s/5owE5hmJVkwOLJrKMXfR6Q 导读 2023 TIOBE 年度编程语言正式揭晓,C# 在陪跑多年后 ...

  10. 40. 干货系列从零用Rust编写负载均衡及代理,websocket的实现

    wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 静态文件服务器,四层TCP/UDP转发,七层负载均衡,内网穿透,后续将实现websocket代 ...