文档的基本操作

本文档详细介绍了Elasticsearch中对文档的基本操作,包括添加、删除、修改和查询。在添加文档时,系统会自动映射字段类型,如name为text,id为long,create_date为date。查询操作包括根据id查询、查找特定属性等,同时指出Elasticsearch对中文分词的支持限制。此外,还讨论了删除和修改文档的逻辑以及HEAD请求在判断文档存在性上的优势。
摘要由CSDN通过智能技术生成

 一、文档的基本操作 

1.添加文档与自动映射 

(1)添加文档

 返回的version:1,第一次创建文档是1,之后修改的话,会累加。

如果创建文档时不指定id,那么es会自动分配:

(2)自动映射

(1)中创建的字段,比如name,自动映射成text类型,id映射成long类型,create_date映射成date类型

 (3)创建了9条文档,前4条是手动指定了id,后5条是自动生成的id

(4)分词查找,只支持英文分词查找 

(5)不支持中文分词查找 

 中文的话,只能一个字一个字的进行匹配

 2.删除

根据id删除

 

 我们在执行删除操作时,es只是帮我们做了一个逻辑删除,其实磁盘的数据没有被删除,当磁盘文件,数据越来越多了,es才会做被动的清理,才会真正的从磁盘删除

3.修改 

局部字段数据的修改,根据id修改

 查看修改后的数据:

全量替换式修改,根据id修改,修改成功之后,版本号也会累加

查看修改后数据:

4.查询

(1)根据id查询:_id,这里的这个id是数据的主键,并不是source里的id

(2)查询所有

took:代表耗费的时间

hits:代表命中的记录

max_score:分数,相关性,搜索匹配度

 (3)查询某个属性,这里我们查找id

 (4)查找多个属性,这里我们查找id,name

(5)查询所有数据的某些属性,这里我们查找所有数据的id,name属性

 返回的结果:

{
	"took": 1,
	"timed_out": false,
	"_shards": {
		"total": 1,
		"successful": 1,
		"skipped": 0,
		"failed": 0
	},
	"hits": {
		"total": {
			"value": 7,
			"relation": "eq"
		},
		"max_score": 1,
		"hits": [
			{
				"_index": "my_doc",
				"_type": "_doc",
				"_id": "2",
				"_score": 1,
				"_source": {
					"name": "imooc-2",
					"id": 1002
				}
			},
			{
				"_index": "my_doc",
				"_type": "_doc",
				"_id": "3",
				"_score": 1,
				"_source": {
					"name": "imooc-3",
					"id": 1003
				}
			},
			{
				"_index": "my_doc",
				"_type": "_doc",
				"_id": "ttjUKXsBxMbEWf45Mejb",
				"_score": 1,
				"_source": {
					"name": "imooc-6",
					"id": 1006
				}
			},
			{
				"_index": "my_doc",
				"_type": "_doc",
				"_id": "t9jUKXsBxMbEWf45W-gE",
				"_score": 1,
				"_source": {
					"name": "imooc-7",
					"id": 1007
				}
			},
			{
				"_index": "my_doc",
				"_type": "_doc",
				"_id": "udjVKXsBxMbEWf45reh4",
				"_score": 1,
				"_source": {
					"name": "imooc-8",
					"id": 1008
				}
			},
			{
				"_index": "my_doc",
				"_type": "_doc",
				"_id": "1",
				"_score": 1,
				"_source": {
					"name": "我是慕课网",
					"id": 1001
				}
			},
			{
				"_index": "my_doc",
				"_type": "_doc",
				"_id": "tdjTKXsBxMbEWf45_ejV",
				"_score": 1,
				"_source": {
					"name": "小红",
					"id": 4
				}
			}
		]
	}
}

 (6)查询某个文档是否存在

响应是200,就说明这个文档存在

响应是404,说明此文档不存在

 为什么不用GET查找方法来判断一个文档是否存在?

原因一,用HEAD请求方法来判断,这是规范

原因二, 用HEAD请求方法,返回的数据大小比较小,如下,只有67B,而用GET查找的数据返回的大小很大,如下,达到了210B,所以用HEAD请求方法来判断一个文档是否存在,尚佳。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

@所谓伊人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值