文章插图
学习计划安排如下:
- 学了几天的Elasticserch,但都是它本身的知识点,如何通过JAVA语言去操作它呢?
- 这就好比以前学数据库,在数据库工具中通过sql语句也能实现增删改查,而在Java中就可以通过jdbc操作数据库 。
- 这里不学原生的Elasticsearch客户端,而是直接学习spring提供的套件:SpringDataElasticsearch 。
- 毕竟要知道,我们以前也基本没用原生的jdbc,而是用的框架,使用起来也简便 。
文章插图
学Java有一个绕不开的坎就是spring,就是主流的很多功能都会看到spring的影子 。
我们已经接触过了的就有:SpringMVC、Spring、SpringBoot、SpringCloud 。
今天继续接触Spring Data中的一个模块 。
为了更好地学习,创建一个demo工程 。
通过spring脚手架创建项目
文章插图
①Spring Initializr
使用idea开发工具创建Java项目有多种方式,以前就是通过Maven自行创建一个项目 。
也可以通过Spring Initializr创建一个项目 。
②说明项目名和Java版本号
项目名为es-demo,使用的jdk8.
③指定项目中需要用到的依赖
【如何利用Java代码操作索引库?】这里也就是springDataElasticsearch 。
下图也就是创建好后的项目结构:
文章插图
该方式创建的好处在于:
我们不用自己导入依赖了,依赖是在创建项目时指定的,也就是创建项目中的步骤③
同时关于启动类、配置文件都帮我们自学创建好了,其实无外乎就是上述三个核心关键步骤:启动类、配置文件、pom文件 。
该方式创建的坏处在于:
版本问题,项目中可能用的是比较旧的版本,spring创建的版本需要自行修改 。
根据自己的需求选择创建方式就好 。
此外关于配置文件:
文章插图
自行配置的是properties文件,而我们常用的是yml文件,这里将其修改成yml文件 。
在配置文件中指定elasticsearch中对应的ip+端口,也就是我们前几天在虚拟机上安装elasticsearch的ip和端口 。
二、创建索引和映射我们以前使用MySQL数据库的时候,在Java中是实体类对应了数据库中的表数据 。
同样的道理,现在是索引库了,在Java中也是使用实体类对应对应的索引库 。
文章插图
注解@Document说明对应的索引库:
- indexName:索引库名称叫item 。
- type:索引库类型docs 。
- shards:分片 。
- replicas:副本 。
类型有很多种,double属于数字型,text和string属于字符型,其中text表示分词,string表示不分词,上述中的keyword其实也就对应着string 。
注意images这个字段,index=false表示不需要索引,说明该字段不需要搜索功能 。
文章插图
我们以前学数据库的时候,在Java中操作数据库使用到了JdbcTemplate 。
现在是要操作索引库,同样的道理,也有一个ElasticsearchTemplate
①createIndex()
创建索引库,参数为实体类的Class对象 。
②putMApping()
说明字段映射关系,参数同上 。
三、实现增删改查通过JdbcTemplate实现数据库的增删改查,索引库中用ElasticsearchTemplate 。
但是我们不用这种方式而是用其它方式 。
毕竟我们现在操作数据库也没用JdbcTemplate而是常常使用通用mapper 。
该方法也就类似于通用mapper 。
文章插图
在通用mapper中我们是创建一个自定义接口继承mapper接口 。
再说明泛型之后,就可以直接使用这个接口完成增删改查操作了 。
同样的道理,在这里是也是自定义一个接口继承ElasticsearchRepository接口 。
关于这个接口的继承体系图通过上图也能查看到,名称也都是见名知义的 。
1新增索引
推荐阅读
- Java8——异步编程
- PHP如何制作自己的Composer包?
- Java如何判断一个字符串中某个字符出现的次数?
- 如何通过Elasticsearch创建索引库?
- 利用 Milvus 搭建基于图的推荐系统
- iPadAir 4、iPadPro、iPad8应如何选择?
- 如何做才能我们的保住元气
- 径山茶盖碗如何冲泡,径山茶冲泡方式茶艺先容
- 初学者如何学太极拳 二个训练方法要谨记
- 如何练好太极拳 五个要点很重要