当前位置: 首页 > news >正文

Elasticsearch各种高级文档操作

本文来记录下Elasticsearch各种文档操作

文章目录

  • 初始化文档数据
  • 查询所有文档
  • 匹配查询文档
  • 关键字精确查询文档
  • 多关键字精确查询文档
  • 字段匹配查询文档
  • 指定查询字段查询文档
  • 过滤字段查询文档
    • 概述
    • 指定想要显示的字段示例
    • 指定不想要显示的字段示例
  • 组合查询文档
  • 范围查询文档
    • 概述
    • 使用实例
  • 本文小结


初始化文档数据

在进行各种文档操作之前,我们先进行初始化文档数据的工作

在这里插入图片描述


查询所有文档

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

请求提参数解释

参数解释
query代表一个查询对象,里面可以有不同的查询属性
match_all查询类型,例如:match_all(代表查询所有), match,term , range 等等
match_all后面的{查询条件}查询条件会根据类型的不同,写法也有差异

服务器响应结果

{"took": 2,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 4,"relation": "eq"},"max_score": 1.0,"hits": [{"_index": "person","_type": "_doc","_id": "Rc9VEY0BBLem2BEm_dvu","_score": 1.0,"_source": {"name": "张三","age": 22,"sex": "男"}},{"_index": "person","_type": "_doc","_id": "Rs_VFI0BBLem2BEmQNuK","_score": 1.0,"_source": {"name": "张三1","age": 22,"sex": "男"}},{"_index": "person","_type": "_doc","_id": "R8_WFI0BBLem2BEmO9tB","_score": 1.0,"_source": {"name": "李四","age": 23,"sex": "女"}},{"_index": "person","_type": "_doc","_id": "SM_WFI0BBLem2BEmrtsU","_score": 1.0,"_source": {"name": "李四1","age": 24,"sex": "女"}}]}
}

服务器响应结果解释

{"took"【查询花费时间,单位毫秒】: 2,"timed_out"【是否超时】: false,"_shards": 【分片信息】{"total"【总数】: 1,"successful"【成功】: 1,"skipped"【忽略】: 0,"failed"【失败】: 0},"hits"【搜索命中结果】: {"total"【搜索条件匹配的文档总数】: {"value"【总命中计数的值】: 4,"relation"【计数规则】: "eq" # eq 表示计数准确, gte 表示计数不准确},"max_score"【匹配度分值】: 1.0,"hits"【命中结果集合】: [-----------------------------]}
}

匹配查询文档

match 匹配类型查询,会把查询条件进行分词,然后进行查询,多个词条之间是 or 的关系

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

服务器响应结果如下:

在这里插入图片描述

由上图输出结果可知:根据匹配条件“张三”,把名称为张三1的也查询出来了,因为match 匹配类型查询,会把查询条件进行分词,然后进行查询,多个词条之间是 or 的关系


关键字精确查询文档

term 查询,精确的关键词匹配查询,不对查询条件进行分词

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

服务器响应结果如下:

在这里插入图片描述


多关键字精确查询文档

terms 查询和 term 查询一样,但它允许你指定多值进行匹配。如果这个字段包含了指定值中的任何一个值,那么这个文档满足条件,类似于 mysql 的 in。

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

服务器响应结果

在这里插入图片描述


字段匹配查询文档

multi_match 与 match 类似,不同的是它可以在多个字段中查询。

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

服务器响应结果

在这里插入图片描述


指定查询字段查询文档

默认情况下,Elasticsearch 在搜索的结果中,会把文档中保存在_source 的所有字段都返回。如果我们只想获取其中的部分字段,我们可以添加_source 的过滤。

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

服务器响应结果

在这里插入图片描述


过滤字段查询文档

概述

默认情况下,Elasticsearch 在搜索的结果中,会把文档中保存在_source 的所有字段都返回。如果我们只想获取其中的部分字段,我们可以添加_source 的过滤。

  • includes:来指定想要显示的字段
  • excludes:来指定不想要显示的字段

指定想要显示的字段示例

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

服务器响应结果

在这里插入图片描述


指定不想要显示的字段示例

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

服务器响应结果

在这里插入图片描述


组合查询文档

bool把各种其它查询通过must(必须 )、must_not(必须不)、should(应该)的方式进行组合。

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

服务器响应结果

在这里插入图片描述


范围查询文档

概述

range 查询找出那些落在指定区间内的数字或者时间。range 查询允许以下字符:

操作符说明
gt大于>
gte大于等于>=
lt小于<
lte小于等于<=

使用实例

在 apifox 中,向 ES 服务器发 GET请求 :http://localhost:9200/person/_search,请求体内容为:

在这里插入图片描述

服务器响应结果

在这里插入图片描述


本文小结

本文记录了一些Elasticsearch文档操作

http://www.lryc.cn/news/285217.html

相关文章:

  • 激光无人机打击系统——光束控制和指向系统
  • pycharm import torch
  • flask 与小程序 购物车删除和编辑库存功能
  • 蓝桥杯真题(Python)每日练Day3
  • 结构体大揭秘:代码中的时尚之选(上)
  • 【unity学习笔记】语音驱动blendershape
  • docker常用基础命令
  • 自动驾驶中的坐标系
  • js数组的截取和合并
  • 2024美赛数学建模思路 - 案例:感知机原理剖析及实现
  • 大中台,小前台:打造快速响应市场的企业竞争力
  • SpringCloud Alibaba 深入源码 - Nacos 和 Eureka 的区别(健康检测、服务的拉取和订阅)
  • Java复习_3
  • 分类预测 | Matlab实现KPCA-EBWO-SVM分类预测,基于核主成分分析和改进的白鲸优化算法优化支持向量机分类预测
  • 力扣hot100 找到字符串中所有字母异位词 滑动窗口 双指针 一题双解
  • PG DBA培训21:PostgreSQL性能优化之基准测试
  • 使用excel从1-2048中随机选择1个整数,并展示与其对应的单词
  • c++可调用对象、function类模板与std::bind
  • 【高危】Apache Solr 环境变量信息泄漏漏洞
  • Python中的卷积神经网络(CNN)入门
  • vulnhub靶机HotelWW
  • ArcGIS Pro 标注牵引线问题
  • Java8的Stream最佳实践
  • Spark SQL函数定义
  • 触摸屏监控双速电动机-PLC I/O电路设计
  • idea中使用git提交代码报 Nothing To commit No changes detected
  • 基于长短期神经网络的回归分析,基于LSTM的回归预测
  • mac查看maven版本报错:The JAVA_HOME environment variable is not defined correctly
  • 蓝桥杯省赛无忧 编程9
  • Spring data都包含哪些内容