目录
一、引入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 查询数据