Springboot开发指南(八)——整合Elasticsearch检索

项目简介:初探springboot整合Elasticsearch检索功能,实现新增索引,检索功能。

需要源码,请加微信号,进技术交流群,发送springboot109,免费获取此文章源码。

1. 新建工程,选择web,thymeleaf,SpringData Elasticsearch

Springboot开发指南(八)——整合Elasticsearch检索_第1张图片

2. 查看依赖jar包中spring-data-elasticsearch版本是3.2.4,elasticsearch版本应该是6.8.6。因此我把我本机docker中的elasticsearch也安装为6.8.6版本

Springboot开发指南(八)——整合Elasticsearch检索_第2张图片

Springboot开发指南(八)——整合Elasticsearch检索_第3张图片

 

docker pull elasticsearch:6.8.6

3.给application.properties中添加

spring.data.elasticsearch.cluster-name=docker-cluster
spring.data.elasticsearch.cluster-nodes=127.0.0.1:9200

其中:cluster-name是elasticsearch的信息(在地址栏里输入127.0.0.1:9200,出现的cluster_name的内容)

            cluster-nodes是elasticsearch地址端口

Springboot开发指南(八)——整合Elasticsearch检索_第4张图片

4.以上步骤完成后,直接启动应用,如下图所示adding transport node:127.0.0.1:9200,则表示启动正常。

Springboot开发指南(八)——整合Elasticsearch检索_第5张图片

Springboot开发指南(八)——整合Elasticsearch检索_第6张图片

5.新增bean文件夹,添加Article类,并加Document注解明确索引是whale,类型是article

@Document(indexName = "whale", type="article")
public class Article {

    private Integer id;
    private String author;
    private String title;
    private String content;
//添加get,set函数,此处忽略
}

6.新增repository 文件夹,添加BookRepository接口,代码如下

public interface BookRepository extends ElasticsearchRepository
{
}

7.在ElasticApplicationTests 测试类中添加如下代码。

@SpringBootTest
class ElasticApplicationTests {

	@Autowired
	ArticleRepository articleRepository;

	@Test
	void contextLoads() {
	}

	@Test
	public void test()
	{
		Article article=new Article();
		article.setId(1);
		article.setAuthor("whale");
		article.setTitle("springboot开发指南-elasticsearch");
        article.setContent("ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口");
		articleRepository.index(article);
	}
}

8.运行test方法,无问题

Springboot开发指南(八)——整合Elasticsearch检索_第7张图片

9.在浏览器里输入http://127.0.0.1/whale/article/_search,显示所有查询结果

Springboot开发指南(八)——整合Elasticsearch检索_第8张图片

http://127.0.0.1/whale/article/1,查询id为1的结果

Springboot开发指南(八)——整合Elasticsearch检索_第9张图片

 

你可能感兴趣的:(springboot,elasticsearch)