ES springboot 整合示例
时间: 2023-09-05 13:07:45 浏览: 39
好的,下面是一个简单的 Spring Boot 整合 Elasticsearch 的示例:
首先,我们需要添加以下 Maven 依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
```
然后,在 `application.properties` 配置文件中添加 Elasticsearch 连接信息:
```properties
spring.data.elasticsearch.cluster-nodes=localhost:9300
spring.data.elasticsearch.cluster-name=my-application
```
接下来,我们创建一个实体类 `User`,用于存储用户信息:
```java
@Data
@Document(indexName = "user")
public class User {
@Id
private String id;
@Field(type = FieldType.Keyword)
private String name;
@Field(type = FieldType.Integer)
private Integer age;
@Field(type = FieldType.Keyword)
private String gender;
}
```
在实体类上使用 `@Document` 注解指定索引名称,使用 `@Field` 注解指定字段类型。`@Id` 注解表示该字段为文档的唯一标识。
接下来,我们创建一个 Elasticsearch 的 Repository 接口 `UserRepository`:
```java
public interface UserRepository extends ElasticsearchRepository<User, String> {
List<User> findByName(String name);
}
```
在接口中继承 `ElasticsearchRepository`,并指定实体类和文档ID的类型。该接口中可以定义一些自定义的查询方法,如上面的 `findByName` 方法。
最后,我们可以在 Service 层中使用 `UserRepository` 进行 Elasticsearch 操作:
```java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public void save(User user) {
userRepository.save(user);
}
public List<User> findByName(String name) {
return userRepository.findByName(name);
}
}
```
这样,我们就完成了 Spring Boot 整合 Elasticsearch 的示例。