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相关推荐

  1. spring-boot 2.3.x 整合elasticsearch

    spring-boot 2.3.x 整合elasticsearch 文章目录 spring-boot 2.3.x 整合elasticsearch 1.elasticsearch的安装(docker形式 ...

  2. 完整教程:spring-boot-starter-data-elasticsearch整合elasticsearch 6.x

    2019年11月6日更新 springboot 2.2整合elasticsearch 7.x请参考 https://blog.csdn.net/chengyuqiang/article/details ...

  3. SpringBoot-starter-data整合Elasticsearch

    1.前言 本文主要讲解,springBoot 使用spring-boot-starter-data-elasticsearch方式整合Elasticsearch 文末附源码 什么是Spring Dat ...

  4. 七、SpringBoot整合elasticsearch集群

    @Author : By Runsen @Date : 2020/6/12 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘 ...

  5. SpringBoot 整合ElasticSearch全文检索

    ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的,并作为Apa ...

  6. Springboot 整合ElasticSearch 常用的插入查询,模糊查询,范围查询

    前言 本来该篇教程就应该写到 Springboot 整合 ElasticSearch 入门教学必看 https://blog.csdn.net/qq_35387940/article/details/ ...

  7. 【数据篇】SpringBoot 整合 Elasticsearch 实践数据搜索引擎

    写在最前 Elasticsearch 入门必读 Docker安装ELK Spring Data Elasticsearch 参考文档 版本选择 Spring Data Release Train Sp ...

  8. 微服务商城系统(六)商品搜索 SpringBoot 整合 Elasticsearch

    文章目录 一.Elasticsearch 和 IK 分词器的安装 二.Kibana 使用 三.数据导入 Elasticsearch 1.SpringData Elasticsearch 介绍 2.搜索 ...

  9. java-web系列(九)---SpringBoot整合ElasticSearch

    前言 这个项目的github地址:extensible项目的github地址 extensible项目当前功能模块如下: java-web系列(一)-搭建一个基于SSM框架的java-web项目 ja ...

最新文章

  1. openstack 之 使用ansible安装部署试验
  2. MEDC2007北京游记 - WindowsMobile Ophone
  3. hadoop 源码编译---Win7(64位)
  4. lambda创建线程
  5. 天气预报API接口 : 城市对应码(中国天气网)
  6. halcon 偏折法_halcon方法学习之blob分析
  7. 乔治亚理工学院计算机专业,乔治亚理工学院
  8. js 连mysql 延后_详解MySQL 主从同步延迟
  9. 7种最有效的懒人减肥方法,收藏了!
  10. 人脸识别考勤机软件驱动安装和设置
  11. windows设置cmd命令行背景为半透明
  12. 支付宝小程序生成二维码
  13. 玩qq游戏提示计算机内存不足,我有时玩QQ游戏就出现虚拟内存不足.要怎么 – 手机爱问...
  14. 手写朴素贝叶斯文本分类
  15. 机顶盒利旧改造,实现安卓和Linux双系统启动
  16. 2020上半年十大典型勒索软件大盘点
  17. 8种在JavaScript数组中查找指定元素的方法(用于开发中数据的处理)
  18. fedora利用vmlinuz和initrd制作linux启动u盘,打造Fedora 14安装U盘
  19. 马里兰大学 计算机视觉,马里兰大学信息系统排名2019年
  20. AttributeError: module 'easygui' has no attribute 'msgbox'错误

热门文章

  1. 为了帮视障人士“看见”,阿里工程师做了哪些努力?
  2. 计算机网络实验报告4icmp,实验04-ip、icmp协议分析
  3. k8s包管理器helm_eShopOnContainers 知多少[10]:部署到 K8S | AKS
  4. 重新探讨一下《APEX英雄》系统设计的亮点
  5. ASP.NET Core微服务(二)——【ASP.NET Core Swagger配置】
  6. 从Oracle到MySQL,余额宝云实践分享
  7. 通过netstat+rmsock查找AIX端口对应进程
  8. phoenix kerberos 连接配置
  9. JDK与JRE及其在Eclipse中的使用
  10. FPGA在其他领域的应用(二)