专栏首页CodeSheep的技术分享Elastic Search搜索引擎在SpringBoot中的实践

Elastic Search搜索引擎在SpringBoot中的实践

  • ES版本:5.3.0
  • spring bt版本:1.5.9

首先当然需要安装好elastic search环境,最好再安装上可视化插件 elasticsearch-head来便于我们直观地查看数据。

当然这部分可以参考本人的帖子: 《centos7上elastic search安装填坑记》 https://www.jianshu.com/p/04f4d7b4a1d3

我的ES安装在http://113.209.119.170:9200/这个地址(该地址需要配到springboot项目中去)


Spring工程创建

这部分没有特殊要交代的,但有几个注意点一定要当心

  • 注意在新建项目时记得勾选web和NoSQL中的Elasticsearch依赖,来张图说明一下吧:

项目自动生成以后pom.xml中会自动添加spring-boot-starter-data-elasticsearch的依赖:

  • 本项目中我们使用开源的基于restful的es java客户端jest,所以还需要在pom.xml中添加jest依赖:
  • 除此之外还必须添加jna的依赖:

否则启动spring项目的时候会报JNA not found. native methods will be disabled.的错误:

  • 项目的配置文件application.yml中需要把es服务器地址配置对

代码组织

我的项目代码组织如下:

各部分代码详解如下,注释都有:

  • Entity.java
  • TestService.java
  • TestServiceImpl.java
  • EntityController.java

实际实验

增加几条数据,可以使用postman工具,也可以直接在浏览器中输入,如增加以下5条数据:

数据插入效果如下(使用可视化插件elasticsearch-head观看):

我们来做一下搜索的测试:例如我要搜索关键字“南京” 我们在浏览器中输入:

搜索结果如下:

刚才插入的5条记录中包含关键字“南京”的四条记录均被搜索出来了!

当然这里用的是standard分词方式,将每个中文都作为了一个term,凡是包含“南”、“京”关键字的记录都被搜索了出来,只是评分不同而已,当然还有其他的一些分词方式,此时需要其他分词插件的支持,此处暂不涉及,后文中再做探索。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 初探Kotlin+SpringBoot联合编程

    Kotlin是一门最近比较流行的静态类型编程语言,而且和Groovy、Scala一样同属Java系。Kotlin具有的很多静态语言特性诸如:类型判断、多范式、扩...

    CodeSheep
  • CentOS7上ElasticSearch安装填坑记

    在 Linux 环境中,elasticsearch 不允许以 root 权限来运行!所以需要创建一个非root用户,以非root用户来起es

    CodeSheep
  • RPC框架实践之:Google_gRPC

    CodeSheep
  • 百度熊掌号: 2018-2020年, 你不容错过的流量红利!

    自百家官方号上线到熊掌号落地以来,百度搜索一直在颠覆原有的搜索生态,不断的推陈出新与改革,净化网络环境,扶植优质原创内容,让搜索回归本质,从而适应快速迭代的移动...

    蝙蝠侠IT
  • AI超大事件丨从研究到应用,这是一份2017年AI领域的最全面总结

    大数据文摘
  • LockSupport中的park与unpark原理

    LockSupport是用来创建locks的基本线程阻塞基元,比如AQS中实现线程挂起的方法,就是park,对应唤醒就是unpark。JDK中有使用的如下

    爬蜥
  • 京东思维题 | 如何用0.01元购买一瓶可乐,这是一个不正经的题目

    咋眼看去,这是一道不正经的题目,有点无厘头。怎么可能花0.01元就可以买到一瓶可乐。继续往下看.....

    码神联盟
  • 搜索引擎再进化:从声音搜索到虚拟现实

    《碟中谍4》开场不久,特工哈纳韦在火车站台上戴上隐形眼镜,拿着手机,在茫茫人海中搜索跟踪对象。眼镜将哈纳韦看到的信息自动收集并迅速与人物数据库匹配快速锁定目标。...

    罗超频道
  • 微服务下配置管理中心 SCCA

    SCCA 全称 spring-cloud-config-admin,微服务下 Spring Boot 应用(包含 Spring Cloud)统一的配置管理平台。

    轻量级微服务
  • SpringCloud配置中心集群搭建

    一、简介 为了方便配置文件统一管理,需要分布式配置中心组件,在springcloud中,使用配置中心。 可以放在本地,也可以放在远程git或者svn。 服务数量...

    叔叔

扫码关注云+社区

领取腾讯云代金券