ElasticSearch进阶_基本操作

1.倒排索引

常规的索引建立方式:

  • 文件>关键词的映射过程(正向索引)
    缺点:费时,需要将文档全部遍历一遍

倒排反向建立索引

  • 关键词>文档的映射
    把正向索引的结果重新构建成倒排索引

通俗解释:
例如有5个文档,全文搜索将这5个文档进行分词(中文或英文),将文档中一个个单词根据不用的语言,拆分成单个微小的词项,然后每个单词都有一个id,对文档也做一个集合,然后对单词集合和文档集合得到一张表
在这里插入图片描述
在这里插入图片描述

2.简易的增删改查操作

2.1 添加文档

在这里插入图片描述
注意:
1.如果不指定文档id,新添加的文档会设置一个随机的id
在这里插入图片描述

2 如果文档id已经存在,那么新添加的文档会覆盖之前的文档

2.2 通过文档id来获取文档信息

在这里插入图片描述
GET /索引/类型/文档id (不需要任何参数,包括_search或query)
在这里插入图片描述

2.3 通过_source获取指定的字段

需要显示的字段直接用","相隔
在这里插入图片描述

2.4 我们更新同一个文档id下的文档,可以通过覆盖的方式更像

这个方法上面有讲过

2.5 通过update的方式来单独更新想要更新的字段

例如:我们文档id为23时,文档内容如下
在这里插入图片描述
我们需要将content更改为:“我是超级大帅哥王晓峰2”

POST  /索引/类型/文档id
_update
{
	"doc":{
		字段:值
	}
}

在这里插入图片描述
在postman中
在这里插入图片描述
修改之后,我们发现标题已经有了改变
在这里插入图片描述
如果要修改一个json格式的字段中的某个值,
修改
在这里插入图片描述
在这里插入图片描述

3.Mget获取多个文档

需求:
同时获取多个文档信息
在index:bank和
下ID为1,2,3,4,15,28的文档信息

我们在上面讲的都是在一个索引下如何获取符合条件的文档,而现在我们要做的是查多个索引
在这里插入图片描述
我们现在能想到的就是一个一个去获取

GET /bank/bank_count/1
GET /bank/bank_count/2
GET /bank/bank_count/4
GET /shakespeare/line/3
GET /shakespeare/line/15

此时就需要用到 _mget这个api

GET http://127.0.0.1:9201/_mget

{
  "docs": [
    {
      "_index": "bank",
      "_type": "bank_count",
      "_id": 1
    },
    {
      "_index": "bank",
      "_type": "bank_count",
      "_id": 2
    },
    {
      "_index": "bank",
      "_type": "bank_count",
      "_id": 4
    },
    {
      "_index": "shakespeare",
      "_type": "line",
      "_id": 3
    },
    {
      "_index": "shakespeare",
      "_type": "line",
      "_id": 15
    }
  ]
}

查看返回值:

{
	"docs": [
		{
			"_index": "bank",
			"_type": "bank_count",
			"_id": "1",
			"_version": 1,
			"_seq_no": 0,
			"_primary_term": 1,
			"found": true,
			"_source": {
				"name": "tom"
			}
		},
		{
			"_index": "bank",
			"_type": "bank_count",
			"_id": "2",
			"_version": 1,
			"_seq_no": 0,
			"_primary_term": 1,
			"found": true,
			"_source": {
				"name": "jerry"
			}
		},
		{
			"_index": "bank",
			"_type": "bank_count",
			"_id": "4",
			"_version": 1,
			"_seq_no": 1,
			"_primary_term": 1,
			"found": true,
			"_source": {
				"name": "jordan"
			}
		},
		{
			"_index": "shakespeare",
			"_type": "line",
			"_id": "3",
			"_version": 1,
			"_seq_no": 0,
			"_primary_term": 1,
			"found": true,
			"_source": {
				"name": "jack"
			}
		},
		{
			"_index": "shakespeare",
			"_type": "line",
			"_id": "15",
			"_version": 1,
			"_seq_no": 0,
			"_primary_term": 1,
			"found": true,
			"_source": {
				"name": "rose"
			}
		}
	]
}

如何要获取相同索引相同type下的不同ID的文档,可以简便成这么写
在这里插入图片描述

4.bulk进行批量操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值