Elasticsearch是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。 
Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

1.安装Elasticsearch服务并进行相关配置,启动Elasticsearch服务

2. 安装Elasticsearch Header  可视查看相关记录信息

3. pom.xml

<!-- elasticsearch -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency><groupId>io.searchbox</groupId><artifactId>jest</artifactId>
</dependency

1.application.yml

spring:elasticsearch:jest:uris:- http://124.222.108.169:9200read-timeout: 5000

2.StudentController

****/
@Slf4j
@RestController
@RequestMapping("/student")
@Api(tags = "学生信息")
public class StudentController {@Autowiredprivate StudentService studentService;@ApiOperation(value = "保存学生数据")@RequestMapping(path="/saveStudent")public JSONResult saveStudent( HttpServletRequest request, HttpServletResponse response){List<Student> list=new ArrayList<Student>();Student student=new Student( 1L,"张三",5);list.add(student);student=new Student( 2L,"王五",8);list.add(student);student=new Student( 4L,"赵六",10);list.add(student);studentService.saveEntity(list);return  JSONResult.ok();}@ApiOperation(value = "删除学生数据")@RequestMapping(path="/delStudent")public JSONResult delStudent( HttpServletRequest request, HttpServletResponse response){String id=request.getParameter("id");studentService.delEntity(id);return  JSONResult.ok();}@ApiOperation(value = "搜索")@RequestMapping(path="/searchStudent")public JSONResult searchStudent( HttpServletRequest request){List<Student>  result=studentService.searchEntity("张");return  JSONResult.ok(result);}/*** 创建索引* @param indexName* @throws Exception*/@ApiOperation(value = "创建索引")@RequestMapping(path="/createIndex")public JSONResult createIndex(@RequestParam("indexName")String indexName) throws Exception{studentService.createIndex(indexName);return JSONResult.ok();}/*** 删除索引* @param indexName* @throws Exception*/@ApiOperation(value = "刪除索引")@RequestMapping(path="/deleteIndex")public JSONResult deleteIndex(@RequestParam("indexName")String indexName) throws Exception{studentService.deleteIndex(indexName);return JSONResult.ok();}
}

3.StudentServiceImpl

@Service
public class StudentServiceImpl implements StudentService {private static final Logger LOGGER = LoggerFactory.getLogger(StudentServiceImpl.class);@Autowiredprivate JestClient jestClient;@Overridepublic void saveEntity(Student entity) {Index index = new Index.Builder(entity).index(Student.INDEX_NAME).type(Student.TYPE).build();try {jestClient.execute(index);LOGGER.info("插入完成");} catch (IOException e) {e.printStackTrace();LOGGER.error(e.getMessage());}}@Overridepublic void delEntity(String id) {Delete index = new Delete.Builder(id).index(Student.INDEX_NAME).type(Student.TYPE).build();try {jestClient.execute(index);LOGGER.info("删除完成");} catch (IOException e) {e.printStackTrace();LOGGER.error(e.getMessage());}}@Overridepublic void saveEntity(List<Student> entityList) {Bulk.Builder bulk = new Bulk.Builder();for(Student entity : entityList) {Index index = new Index.Builder(entity).id(String.valueOf(entity.getId())).index(Student.INDEX_NAME).type(Student.TYPE).build();bulk.addAction(index);}try {jestClient.execute(bulk.build());LOGGER.info("批量插入完成");} catch (IOException e) {e.printStackTrace();LOGGER.error(e.getMessage());}}/*** 在ES中搜索内容*/@Overridepublic List<Student> searchEntity(String searchContent){SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();searchSourceBuilder.query(QueryBuilders.matchQuery("studentName",searchContent));Search search = new Search.Builder(searchSourceBuilder.toString()).addIndex(Student.INDEX_NAME).addType(Student.TYPE).build();try {JestResult result = jestClient.execute(search);return result.getSourceAsObjectList(Student.class);} catch (IOException e) {LOGGER.error(e.getMessage());e.printStackTrace();}return null;}/*** 创建索引* @param indexName**/@Overridepublic void createIndex(String indexName) {try{CreateIndex createIndex = new CreateIndex.Builder(indexName).build();JestResult result = jestClient.execute(createIndex);LOGGER.info("result",result.getJsonString());}catch (Exception e){LOGGER.error(e.getMessage());e.printStackTrace();}}/*** 删除索引* @param indexName**/@Overridepublic void deleteIndex(String indexName) {try{DeleteIndex deleteIndex = new DeleteIndex.Builder(indexName).build();JestResult result = jestClient.execute(deleteIndex);LOGGER.info("result",result.getJsonString());}catch (Exception e){LOGGER.error(e.getMessage());e.printStackTrace();}}

SpringBoot 集成Elasticsearch相关推荐

  1. 史上最简单的Elasticsearch教程:SpringBoot集成Elasticsearch 实时流量监测平台

    SpringBoot集成Elasticsearch 实时流量监测平台 目录: 第一章:初尝 Elasticsearch 第二章:玩转 Kibana 第三章:开发原生 Elasticsearch 案例 ...

  2. GitChat优质文章-SpringBoot集成Elasticsearch

    Elasticsearch 是一个基于 Lucene 库的搜索引擎.Elasticsearch 是目前大数据领域最热门的技术栈之一.目前 Elasticsearch 被广泛应用在搜索.安全.数据分析等 ...

  3. springboot集成Elasticsearch实现各种搜索功能

    springboot集成Elasticsearch各类搜索功能实现 springboot集成Elasticsearch使用completion suggest实现自动关键字补全 建立学生的索引和映射: ...

  4. 【SpringBoot高级篇】SpringBoot集成Elasticsearch搜索引擎

    [SpringBoot高级篇]SpringBoot集成Elasticsearch搜索引擎 1. 什么是Elasticsearch? 2. 安装并运行Elasticsearch 2.1 拉取镜像 2.2 ...

  5. Springboot集成elasticsearch 使用IK+拼音分词

    Springboot集成elasticsearch 使用IK+拼音分词 docker安装ES 下载 docker pull docker.elastic.co/elasticsearch/elasti ...

  6. springboot——集成elasticsearch进行搜索并高亮关键词

    目录 1.elasticsearch概述 3.springboot集成elasticsearch 4.实现搜索并高亮关键词 1.elasticsearch概述 (1)是什么: Elasticsearc ...

  7. springboot集成elasticsearch,实现搜索提示补全功能

    springboot集成elasticsearch,通过实体类创建索引,实现搜索提示补全功能 文章目录 springboot集成elasticsearch,通过实体类创建索引,实现搜索提示补全功能 一 ...

  8. 自学笔记-SpringBoot集成ElasticSearch

    目录 一.ElasticSearch介绍: 二.ElasticSearch安装: 三.Kibana的安装 四.配置ik分词器 五.Springboot集成ElasticSearch Ⅰ.依赖 Ⅱ.配置 ...

  9. SpringBoot集成Elasticsearch搜索引擎(九)

    官网:https://www.elastic.co/cn/ 官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/i ...

  10. SpringBoot集成ElasticSearch在启动时报availableProcessors is already set to [8], rejecting [8]

    背景 项目基于SpringBoot并且集成ElasticSearch,今天在编写测试类准备进行单元测试时,报了如下这个错误. Caused by: org.springframework.beans. ...

最新文章

  1. oracle各种字符集修改
  2. Unix下设计动态库的方法《精通Unix下C语言编程与项目实践》(一)
  3. python中使用for循环,while循环,一条命令打印99乘法表
  4. C++brent method布伦特方法找extrema极值的算法(附完整源码)
  5. 网上商城—管理员修改商品
  6. 安卓开发fragment之间的切换_Android开发必会的组件化技术—Android架构和提升必备...
  7. moel vue 自定义v_vue组件,自定义v-model方法
  8. 计算机网络之物理层:2、码元、速率、带宽、波特
  9. 华为:2021数字化转型,从战略到执行.pdf(附103页pdf下载链接)
  10. ecshop怎样在新主页模板里调用首页主广告
  11. js中获取中文相应gbk编码
  12. 外卖点餐列表滑动 微信小程序_点餐小程序购物车效果实现,点餐小程序购物车列表的实现...
  13. day048:LocalDateTime中增加、减少、直接修改时间的方法、计算时间间隔的方法
  14. 66个求职应聘技巧性问答(一)
  15. 概率论复习笔记【3条件概率】
  16. 八皇后问题解法大全及编写八皇后小游戏
  17. 只会PC端测试怎么行?智能手机ETT测试学习一下
  18. JS 判断用户设备是IOS 还是 Android
  19. 保研经验贴 某不知名211上岸华南理工大学
  20. 西北工业大学计算机学院王鹏,王鹏的个人主页-西北工业大学教师个人主页

热门文章

  1. 软件测试行业是一座围城
  2. 智慧灯杆网关的单灯控制与边缘计算功能
  3. 友声电子秤手机app_友声TM-xA条码秤数据管理软件V2.53D
  4. python mypy类型检查_Python 类型检查
  5. 质检报告的含义与意义
  6. Vector Davinci Developer(RTE) Usage Introduction
  7. 工业4.0时代IIoT存储面临哪些挑战
  8. 中文自然语言处理入门之Hanlp介绍
  9. simulink中子系统分解
  10. 2014迅雷校园招聘笔试题