Elasticsearch各种高级文档操作

这篇具有很好参考价值的文章主要介绍了Elasticsearch各种高级文档操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


初始化文档数据

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式


查询所有文档

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

请求提参数解释

参数 解释
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,请求体内容为:

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

服务器响应结果如下:

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

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


关键字精确查询文档

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

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

服务器响应结果如下:

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式


多关键字精确查询文档

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

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

服务器响应结果

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式


字段匹配查询文档

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

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

服务器响应结果

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式


指定查询字段查询文档

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

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

服务器响应结果

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式


过滤字段查询文档

概述

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

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

指定想要显示的字段示例

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

服务器响应结果

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式


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

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

服务器响应结果

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式


组合查询文档

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

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

服务器响应结果

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式


范围查询文档

概述

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

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

使用实例

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

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式

服务器响应结果

Elasticsearch各种高级文档操作,核心知识点,Elastic Search,es,elasticsearch,分布式


本文小结

本文记录了一些Elasticsearch文档操作文章来源地址https://www.toymoban.com/news/detail-811555.html

到了这里,关于Elasticsearch各种高级文档操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PyFlink核心知识点

    四层 说明 备注 SteamGraph 代码生成的最初的图 表示程序的拓扑结构 JobGraph 将多个符合条件的节点,链接为一个节点 可以减少数据在节点之间流动所需要的序列化/反序列化/传输消耗 ExecutionGraph JobGraph的并行化版本 是调度层最核心的数据结构 PhysicalGraph JobManager根据ExecutionGra

    2024年04月27日
    浏览(54)
  • Vue入门——核心知识点

    Vue是一套用于 构建用户界面 的 渐进式 JS框架。 构建用户界面:就是将后端返回来的数据以不同的形式(例如:列表、按钮等)显示在界面上。 渐进式:就是可以按需加载各种库。简单的应用只需要一个核心库即可,复杂的应用可以按照需求引入各种Vue插件。 采用组件化模式

    2024年02月06日
    浏览(54)
  • Verilog 高级知识点

    目录 Verilog 高级知识点 1、阻塞赋值(Blocking) 2、非阻塞赋值(Non-Blocking) 3 、assign 和 always 区别 4、什么是 latch        本节给大家介绍一些高级的知识点。高级知识点包括阻塞赋值和非阻塞赋值、assign 和 always 语句差异、什么是锁存器、状态机、模块化设计等。        

    2024年02月09日
    浏览(40)
  • SQL高级知识点

    MySQL基础 1、安装    1)设置编码    2)设置密码 2、配置文件:my.ini、my.cnf    1)设置端口号      port=3306    2)设置编码    3)存储引擎     4)最大连接数    注意:重启mysql服务 3、登陆mysql数据库    问题:\\\"mysql\\\"不是系统内部或外部命令....    解决:将mysql的bin目录配置到

    2024年02月10日
    浏览(41)
  • redis核心知识点简略笔记

    value数据类型 string 二进制安全 list 有序、可重复 set 无序、不重复 hash field-value的map sorted set 不重复、通过double类型score分数排序 场景 string 计数器 缓存 分布式锁 访问频率控制 分布式session hash 购物车等对象属性灵活修改 list 定时排行榜 set 收藏 sorted set 实时排行榜 持久化

    2024年02月13日
    浏览(55)
  • JavaSE核心基础-循环-知识点

    1.循环概念 循环是在满足条件的情况下,反复的做同一件事。 Java语言中的循环语句有三种,分别是for语句、while语句和do-while语句。程序中需要循环处理时,程序员要根据实际问题,选择适当的循环语句。解决循环问题时一定要找到循环条件和循环操作。 2.for循环语句格式

    2024年02月22日
    浏览(44)
  • 垃圾回收的核心知识点解析

    Java运行时内存中的程序计数器、虚拟机栈、本地方法栈这三部分区域其生命周期与相关线程有关,随线程而生,随线程而灭。而程序计数器就是一个单纯存地址的整数也不需要关心,因此我们GC(垃圾回收)的主要目标就是堆(堆中存放着几乎所有实例对象)! 一个对象,如

    2024年02月16日
    浏览(43)
  • 一文吃透Tomcat核心知识点

    首先,看一下整个架构图。最全面的Java面试网站 接下来简单解释一下。 Server :服务器。Tomcat 就是一个 Server 服务器。 Service :在服务器中可以有多个 Service,只不过在我们常用的这套 Catalina 容器的Tomcat 中只包含一个 Service,在 Service 中包含连接器和容器。一个完整的 Serv

    2024年02月02日
    浏览(49)
  • 分布式高级知识点

    Paxos 是一种分布式一致性算法,用于在分布式系统中达成共识。它可以保证,即使在存在节点故障的情况下,系统也能就某个值达成一致。 Paxos 算法的基本思想是,首先选出一个协调者(leader)。协调者负责向其他节点发送提案(proposal)。其他节点收到提案后,会对其进行

    2024年02月03日
    浏览(53)
  • Java核心技术知识点笔记—并发

    前言:多任务(multitasking),即同一刻运行多个程序的能力。并发执行的进程数目并不是由CPU数目制约的。操作系统将CPU的时间片分配给每一个进程,给人并行处理的感觉。 1、线程(thread):多线程程序的概念,即可以同时执行多个任务的程序。其中,每个任务称为一个线

    2023年04月12日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包