SpringBoot 2.x (12):整合Elasticsearch
Elasticsearch:一个优秀的搜索引擎框架
搜索方面最基本的是SQL的like语句
进一步的有Lucene框架
后来有企业级的Solr框架
而Elasticsearch框架尤其适合于数据量特别大的
Elasticsearch底层也是由Lucene实现的
应用:Github、维基百科、StackOverflow
Elasticsearch部署:
纯Java开发,因此必备JDK
采用5.6版本而不是最新版,因为SpringBoot可能不支持
推荐部署到Linux服务器,但是这里为了方便我直接部署在本地Windows系统
下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.zip
下载好进入BIN目录,运行elasticsearch.bat运行
如果报错,通常情况是机器配置不够或者以错误地root权限启动了
Win10高配机器不存在这种问题
http://127.0.0.1:9200/:进入主页
http://localhost:9200/_cat/health?v:查看集群状态
localhost:9200/_cat/indices?v:查看索引列表
参考官网,创建索引:
查看我创建的索引:
加入数据:
查看我加入的数据:
SpringBoot进行整合
依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>
查看依赖后发现,SpringBoot2.1.4采用的elasticsearch是6.4.3版本
为了确保不出问题,我重新下载6.4.3版本,事后我验证了,就以下的这些基本操作,es的版本可以不影响
新建实体类Article:
搜索的对象就是文章
package org.dreamtech.esdemo.domain;import java.io.Serializable;import org.springframework.data.elasticsearch.annotations.Document;/*** 文章对象* * @author Xu Yiqing**/ @Document(indexName = "blog", type = "article") public class Article implements Serializable {private static final long serialVersionUID = 8210249797764830332L;private long id;private String title;private String summary;private String content;private int pv;public long getId() {return id;}public void setId(long id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getSummary() {return summary;}public void setSummary(String summary) {this.summary = summary;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public int getPv() {return pv;}public void setPv(int pv) {this.pv = pv;}}
对ES进行配置:
spring.data.elasticsearch.cluster-name=elasticsearch spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300 spring.data.elasticsearch.repositories.enabled=true
对ES进行操作默认的接口:
package org.dreamtech.esdemo.repository;import org.dreamtech.esdemo.domain.Article; import org.springframework.data.elasticsearch.repository.ElasticsearchRepository; import org.springframework.stereotype.Component;@Component public interface ArticleRepository extends ElasticsearchRepository<Article, Long> { }
Controller层测试代码:
package org.dreamtech.esdemo.controller;import org.dreamtech.esdemo.domain.Article; import org.dreamtech.esdemo.repository.ArticleRepository; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController;@RestController public class ArticleController {@Autowiredprivate ArticleRepository articleRepository;@GetMapping("/save")public Object save(long id, String title) {Article article = new Article();article.setId(id);article.setPv(123);article.setContent("Springboot整合Elasticsearch");article.setTitle(title);article.setSummary("搜索框架整合");articleRepository.save(article);return "save";}@GetMapping("/search")public Object search(String title) {QueryBuilder queryBuilder = QueryBuilders.matchQuery("title", title);Iterable<Article> list = articleRepository.search(queryBuilder);return list;}}
实际测试:
用这种方式保存多个文章后就可以进行搜索了:
转载于:https://www.cnblogs.com/xuyiqing/p/10848273.html
SpringBoot 2.x (12):整合Elasticsearch相关推荐
- spring-boot 2.3.x 整合elasticsearch
spring-boot 2.3.x 整合elasticsearch 文章目录 spring-boot 2.3.x 整合elasticsearch 1.elasticsearch的安装(docker形式 ...
- 完整教程:spring-boot-starter-data-elasticsearch整合elasticsearch 6.x
2019年11月6日更新 springboot 2.2整合elasticsearch 7.x请参考 https://blog.csdn.net/chengyuqiang/article/details ...
- SpringBoot-starter-data整合Elasticsearch
1.前言 本文主要讲解,springBoot 使用spring-boot-starter-data-elasticsearch方式整合Elasticsearch 文末附源码 什么是Spring Dat ...
- 七、SpringBoot整合elasticsearch集群
@Author : By Runsen @Date : 2020/6/12 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...
- SpringBoot 整合ElasticSearch全文检索
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的,并作为Apa ...
- Springboot 整合ElasticSearch 常用的插入查询,模糊查询,范围查询
前言 本来该篇教程就应该写到 Springboot 整合 ElasticSearch 入门教学必看 https://blog.csdn.net/qq_35387940/article/details/ ...
- 【数据篇】SpringBoot 整合 Elasticsearch 实践数据搜索引擎
写在最前 Elasticsearch 入门必读 Docker安装ELK Spring Data Elasticsearch 参考文档 版本选择 Spring Data Release Train Sp ...
- 微服务商城系统(六)商品搜索 SpringBoot 整合 Elasticsearch
文章目录 一.Elasticsearch 和 IK 分词器的安装 二.Kibana 使用 三.数据导入 Elasticsearch 1.SpringData Elasticsearch 介绍 2.搜索 ...
- java-web系列(九)---SpringBoot整合ElasticSearch
前言 这个项目的github地址:extensible项目的github地址 extensible项目当前功能模块如下: java-web系列(一)-搭建一个基于SSM框架的java-web项目 ja ...
最新文章
- openstack 之 使用ansible安装部署试验
- MEDC2007北京游记 - WindowsMobile Ophone
- hadoop 源码编译---Win7(64位)
- lambda创建线程
- 天气预报API接口 : 城市对应码(中国天气网)
- halcon 偏折法_halcon方法学习之blob分析
- 乔治亚理工学院计算机专业,乔治亚理工学院
- js 连mysql 延后_详解MySQL 主从同步延迟
- 7种最有效的懒人减肥方法,收藏了!
- 人脸识别考勤机软件驱动安装和设置
- windows设置cmd命令行背景为半透明
- 支付宝小程序生成二维码
- 玩qq游戏提示计算机内存不足,我有时玩QQ游戏就出现虚拟内存不足.要怎么 – 手机爱问...
- 手写朴素贝叶斯文本分类
- 机顶盒利旧改造,实现安卓和Linux双系统启动
- 2020上半年十大典型勒索软件大盘点
- 8种在JavaScript数组中查找指定元素的方法(用于开发中数据的处理)
- fedora利用vmlinuz和initrd制作linux启动u盘,打造Fedora 14安装U盘
- 马里兰大学 计算机视觉,马里兰大学信息系统排名2019年
- AttributeError: module 'easygui' has no attribute 'msgbox'错误
热门文章
- 为了帮视障人士“看见”,阿里工程师做了哪些努力?
- 计算机网络实验报告4icmp,实验04-ip、icmp协议分析
- k8s包管理器helm_eShopOnContainers 知多少[10]:部署到 K8S | AKS
- 重新探讨一下《APEX英雄》系统设计的亮点
- ASP.NET Core微服务(二)——【ASP.NET Core Swagger配置】
- 从Oracle到MySQL,余额宝云实践分享
- 通过netstat+rmsock查找AIX端口对应进程
- phoenix kerberos 连接配置
- JDK与JRE及其在Eclipse中的使用
- FPGA在其他领域的应用(二)