> 文章列表 > ES索引库操作

ES索引库操作

ES索引库操作

文章目录

  • 1、对索引库的操作:创建、删除、查看
  • 2、文档操作
  • 3、 RestClient操作索引库
  • 4、利用RestClient实现文档的CRUD
  • 5、 批量导入功能

有了索引库相当于数据库database,而接下来,就是需要索引库中的类型了,也就是数据库中的表;创建表——>需要设置字段的约束;索引库也一样——>在创建索引库类型的时候,需要知道这个类型下有哪些字段(每个字段对应一些约束信息)——>这些字段以及对应的约束信息就叫:字段映射

ES索引库操作

下图右侧为json文档,左侧为约束:

ES索引库操作

mapping常见属性:

type:数据类型->记住,es中是没有数组的,但是数组中的属性是有类型的

keyword——>不分词

text——>代表要分词

index:是否索引(是否参与搜索)

true:表示字段会被索引(可以用来搜索),false:不能用来搜索;

analyzer:对text可分词文本的一个分词器

Properties:字段的子字段

1、对索引库的操作:创建、删除、查看

ES索引库操作

ES索引库操作

ES索引库操作

2、文档操作

根据前面对索引库的操作:对里面的类型(相当于数据库中的表)中的字段映射——>进行赋值,就是文档操作

doc:相当于数据库中的表,也就是这里的类型(type)(里面包含一条条数据)

mappings:字段的数据类型、属性、是否索引、是否存储等特性

doc后面的1:就是一条数据

每次进行写操作(插入),version版本+1
ES索引库操作

ES索引库操作
ES索引库操作
ES索引库操作
ES索引库操作

3、 RestClient操作索引库

ES索引库操作
ES索引库操作
ES索引库操作
all是自己新增的字段 将其他需要搜索分词的字段全部整合到一起了

ES索引库操作

ES索引库操作
ES索引库操作
ES索引库操作
ES索引库操作

1.首先先初始化RestHighLevelClient:相当于es的客户端,可以利用它完成es的操作
2.创建索引库的请求:xxxIndexRequest,CREATE就是创建锁库,DELETE就是删除…
3.准备mappings,进行约束
4.发送请求,利用RestHighLevelClient.indices()得到索引库信息,里面封装了对于索引库的操作

ES索引库操作

ES索引库操作

4、利用RestClient实现文档的CRUD

ES索引库操作

步骤:
1.先查询得到酒店数据
2.因为es中的字段与数据库中酒店字段不一致,所以我们需要一个中间类去规范
3.得到request对象——>new IndexRequest(“hotel”).id(数据库中酒店id)
4.得到JSON文档——>request.source();
5.最后利用RestClient发出请求即可

ES索引库操作
然后我们在Kibana中请求获取文档数据

ES索引库操作
ES索引库操作
ES索引库操作
ES索引库操作

ES索引库操作

5、 批量导入功能

ES索引库操作
ES索引库操作
ES索引库操作