Spring Data Elasticsearch的使用

目录

一、引入elasticsearch依赖

二、配置elasticsearch信息

三、配置主类

四、创建实体类

五、创建repository

六、测试

七、Kibana查看数据

7.1 下载Kibana

7.2 修改语言为中文

7.3 启动Kibana

7.4 查询数据


一、引入elasticsearch依赖

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

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
	</dependencies>

二、配置elasticsearch信息

在application.properties配置文件中,加入elasticsearch的服务器地址、用户名、密码等信息。

spring.data.elasticsearch.client.reactive.endpoints=127.0.0.1:9200

三、配置主类

package cn.jack.elasticsearchdemo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)		// 项目没有用到关系型数据库,排除此类,避免启动异常
@EnableElasticsearchRepositories(basePackages = "cn.jack.elasticsearchdemo.domain.repository")	// dao所在包名,不加此配置则需要每个dao都加上@Repository注解交由spring管理
public class ElasticsearchdemoApplication {

	public static void main(String[] args) {
		SpringApplication.run(ElasticsearchdemoApplication.class, args);
	}

}

四、创建实体类

package cn.jack.elasticsearchdemo.domain;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document(indexName = "jack_person")
public class Person {
    @Id
    private String id;
    private String name;
}

五、创建repository

package cn.jack.elasticsearchdemo.domain.repository;

import cn.jack.elasticsearchdemo.domain.Person;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

public interface PersonRepository extends ElasticsearchRepository<Person, String> {
}

六、测试

package cn.jack.elasticsearchdemo.test;

import cn.jack.elasticsearchdemo.ElasticsearchdemoApplication;
import cn.jack.elasticsearchdemo.domain.Person;
import cn.jack.elasticsearchdemo.domain.repository.PersonRepository;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Iterator;

@RunWith(SpringRunner.class)
@SpringBootTest(classes = ElasticsearchdemoApplication.class)
public class EsTest {
    @Autowired
    private PersonRepository personRepository;

    @Test
    public void testSave() {
        this.personRepository.save(new Person("2", "陈家秀"));
        System.out.println("执行完成。");
    }

    @Test
    public void testFind() {
        Iterable<Person> all = this.personRepository.findAll();
        Iterator<Person> iterator = all.iterator();
        while(iterator.hasNext()) {
            Person person = iterator.next();
            System.out.println(person);
        }
    }
}

七、Kibana查看数据

7.1 下载Kibana

下载地址:https://www.elastic.co/cn/kibana

7.2 修改语言为中文

下载完成后,解压。进入Kibana的config目录,修改kibana.yml文件。

默认连接本机的elasticsearch,地址为localhost:9200。其它配置根据需要进行修改(用户名密码等)。

7.3 启动Kibana

双击kibana.bat进行启动,默认监听端口5601

7.4 查询数据

 

 

 

 

 

 

 

 

 

 

Spring Data ElasticsearchSpring Data 家族的一员,为 Elasticsearch 提供了集成支持。通过 Spring Data Elasticsearch,我们可以使用更加简洁的方式来操作 Elasticsearch,并且可以与 Spring 的其他组件无缝集成。 下面是一个简单的 Spring Boot 应用程序,使用 Spring Data Elasticsearch 进行 Elasticsearch 操作的示例: 1. 添加依赖 在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> ``` 2. 配置 Elasticsearch 在 application.properties 文件中添加以下配置: ```properties spring.data.elasticsearch.cluster-nodes=localhost:9300 spring.data.elasticsearch.cluster-name=my-application ``` 3. 创建实体类 创建一个实体类,用于映射 Elasticsearch 中的文档: ```java @Document(indexName = "my_index", type = "my_type") public class MyEntity { @Id private String id; private String name; private Integer age; // getters and setters } ``` 4. 创建 Repository 创建一个 Repository 接口,继承自 ElasticsearchRepository: ```java public interface MyEntityRepository extends ElasticsearchRepository<MyEntity, String> { } ``` 5. 使用 Repository 进行操作 在 Service 或者 Controller 中注入 MyEntityRepository,并使用其提供的方法进行 Elasticsearch 操作: ```java @Service public class MyService { @Autowired private MyEntityRepository myEntityRepository; public void save(MyEntity entity) { myEntityRepository.save(entity); } public List<MyEntity> search(String keyword) { return myEntityRepository.findByNameLike(keyword); } } ``` 上面的代码演示了如何使用 MyEntityRepository 进行保存和搜索操作。Spring Data Elasticsearch 为我们提供了一些内置的方法,我们可以根据需要自定义方法。 以上就是 Spring Data Elasticsearch 的简单使用教程,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值