Springbott2.1.4之整合elasticsearch

                     Springbott2.1.4之整合elasticsearch

1.理解Elasticsearch是干什么的?

        Elasticsearch是一个基于Lucene库的搜索引擎,它提供了一个多分布服务。它是用java开发的,可以快速的存储,搜索和分析海量数据的全文搜索引擎。

2.Springboot通过什么整合Elasticsearch?

       Springboot是基于Jest和SpringData(默认)对Elasticsearch进行整合的。

3.过程:

        1.安装elasticsearch

         这里我是用linux的docker来安装的elasticsearch,如果你还没学习可以先学docker后再看。

              docker pull elasticsearch:6.4.8

             docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -p 9200:9200 -p 9300:9300 -d 你elasticsearch对应的id --name xxxx

            这里可能会出现启动后elasticsearch会自动关闭

            这个时候检查elasticsearch的启动日志

            docker logs 对应id或名

           可以发现日志告诉你空间不足(256m太小了)

          这个时候输入

sysctl -w vm.max_map_count=262144

       这个时候使用docker start id或name即可

       然后访问你的elasticsearch

看到这个页面表明你的elasticsearch启动成功了

2.Springboot基于Jest整合的过程:

           

        首先是导入jest相关的依赖,并且注释掉springdata相关的依赖

        源码分析:

   

在这里我们使用的是JestClient的接口来操作数据

我们进入JestProperties可以看到,我们在yml或者properties可以使用spring.elasticsearch.jest来对JestProperties的属性进行设置,并且它默认的路径是本机的9200端口。

    大概知道了上面两个源码类那么我们来配置Springboot

spring.application.name=springboot-elastic2.0
spring.elasticsearch.jest.uris=http://192.168.43.12:9200

在application.properties中配置你要连接的路径,修改你的spring应用名字。

找到测试类,写入如上的代码。当然前提你要写个bean这里就不说了。

解释下index是说你的索引是谁,type是类型是什么。这里需要设置你的索引和类型。

最后直接执行即可

若是没有报错,就可以查看你刚存储的的数据了。

这里的_search标识查看当前索引下类型下的所有数据

也可进行查询,这里的String是按照elasticsearch官网提供的文档写法写入的。

你也可以用postman查看

因为是新版本的elasticsearch可能会出现header的错误,这个时候你可以进入docker容器中进行如下操作:

 

 

进入head安装目录的 _site/ 文件目录,如果是使用 Docker 安装,需要先进入 Docker 容器。

找到vendor.js文件并编辑,共有两处

第一处在6886行 

把内容 'application/x-www-form-urlencoded' 改成  'application/json;charset=UTF-8'


第二处在7574行 

把内容 'application/x-www-form-urlencoded' 改成  'application/json;charset=UTF-8'

此时查询到即可。

3.Springboot整合springdataelasticsearch

     在maven中引入相关依赖

   写一个实体类

此处的@Document表示这个实例属于哪个索引下的哪个类型

在application.properties中写入:

spring.data.elasticsearch.cluster-name=docker-cluster
spring.data.elasticsearch.cluster-nodes=192.168.43.12:9300

要写入你elasticsearch节点名和节点

写入一个接口

测试传入然后查询即可。

这里的findBookById相当于用了JPA的思想实现了接口查询功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值