(五)Java操作elasticSearch(1)

elasticSearch的操作

一、索引库的操作:

1、mapping属性:

mapping是对索引库中文档的约束,常见的mapping属性包括:
1.1 type:字段数据类型,常见的简单类型有:

字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)
数值:long、integer、short、byte、double、float、
布尔:boolean
日期:date
对象:object
注:一个字段可以有多个值,写成数组的形式,但是数组不是字段的数据类型。也就是说,数组形式的字段的类型=数组里的元素的类型。

1.2 index:是否创建索引,默认为true,也就是所有字段都会被创建倒排索引;
1.3 analyzer:使用哪种分词器,结合text类型使用,其他类型都无需分词;
1.4 properties:某字段的子字段,如object的子属性就可以用这个properties来指定。

es中允许一个字段有多个值,但它没有数组的概念,所以只管值的类型即可。
请添加图片描述

2、创建索引库:

在这里插入图片描述

3、查看、删除索引库

在这里插入图片描述

4、修改索引库:

es中是不允许修改索引库的,因为索引库一旦创建,它的数据结构就创建好了,也就是它的mapping映射就已经实现了,es是根据这些mapping来创建倒排索引的,如果这个时候修改原有的索引库,那么就会导致倒排索引彻底失效。所以是禁止修改索引库的。

es禁止修改原有的字段,但是可以添加新的字段,语法如下:如果是修改原有字段,则会报错,所以新字段名不能和原来的字段名一致。

二、文档操作

1、新增文档:

2、查看、删除文档:

在这里插入图片描述

3、修改文档:

全量修改:逻辑是根据id先将文档删除掉,然后再将新的文档添加进去;
当文档id不存在的时候,这个操作就等价于新增操作;
在这里插入图片描述

三、RestClient操作索引库:

1、Java操作es官网:Java High Level REST Client

2、RestClient操作索引库:

2.1 分析数据结构:

mapping要考虑的问题:字段的字段名、数据类型、是否参与搜索、是否分词、如果分词的话分词器是什么?
在这里插入图片描述字段名和数据表的字段名一致即可;
数据类型和数据表的数据类型一致即可;
是否参与搜索和是否分词与业务相关。
注:
1、id在es中要用keyword,而不是long类型;
2、如下图:
3、因为在搜索的时候,可能是根据多个字段进行搜索,但是根据多个字段和根据单个字段进行搜索,显然是根据单个字段进行搜索的效率要高。这个时候又要多个字段的搜索,又要保证效率,es提供了如下的功能:

在这里插入图片描述在这里插入图片描述
因此,上图数据表的索引库设计如下:

在这里插入图片描述

2.2 初始化JavaRestClient:

在这里插入图片描述在这里插入图片描述

2.3 JavaRestClient创建索引库:

在这里插入图片描述其中,MAPPING_TEMPLATE是DSL语句。可以把DSL语句写在一个常量中,然后引用,避免代码过于臃肿。

2.4 JavaRestClient删除索引库:

在这里插入图片描述

3、总结:

在这里插入图片描述

四、RestClient操作文档:

在这里插入图片描述

1、初始化操作上述已经讲解

2、新增文档操作:

从数据库查询数据,然后将这个数据的格式转成索引库需要的格式,然后添加到索引库;
在这里插入图片描述批量导入索引库:
在这里插入图片描述在这里插入图片描述

3、查询文档操作:

在这里插入图片描述

4、修改文档操作:

在这里插入图片描述

5、删除文档操作:

在这里插入图片描述

6、批量新增文档:

在这里插入图片描述在这里插入图片描述

7、总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值