一、依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- elasticsearch启动器 (必须)-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
</dependencies>
二、ESConfig
/**
* ES 连接配置
*/
@Configuration
@EnableElasticsearchRepositories(basePackages = "com.haoxiansheng.common.dao")
public class ESConfig extends AbstractElasticsearchConfiguration {
@Value("$(elasticsearch.host)")
private String host;
@Value("$(elasticsearch.port)")
private String port;
/**
* todo 了解一下这个的用法
*/
@Autowired
private ElasticsearchOperations elasticsearchOperations;
/**
* 继承下面那个类
* nodename nor servname provided, or not known
*/
@Override
public RestHighLevelClient elasticsearchClient() {
return RestClients.create(ClientConfiguration.localhost()).rest();
}
// /**
// * 第二种方法
// */
// @Bean
// public RestHighLevelClient client() {
// ClientConfiguration clientConfiguration = ClientConfiguration.builder().connectedTo(host).build();
// return RestClients.create(clientConfiguration).rest();
// }
}
三、application.properties
# 配置控制台打印Sql 你可以看到执行时的sql
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
#取消注释两个条目以连接本地elasticsearch群集 本地已经使用配置
#spring.data.elasticsearch.clusterName=myelasticsearch
#spring.data.elasticsearch.clusterNodes=localhost:9300
四、DAO 层
import com.haoxisnheng.common.entity.Audit;
import org.springframework.data.elasticsearch.repository.ElasticsearchCrudRepository;
public interface AuditRepository extends ElasticsearchCrudRepository<Audit, String> {
// 实现自己定义的查询 或使用继承的
}
五、实体类
@Data
@Document(indexName = "audit", type = "audit")
public class Audit {
@Id
private String id;
@Field(type = FieldType.Date)
private String time;
private String customerId;
private String customerName;
private String operation;
private String resourceType;
private String content;
private String details;
public Audit() {
}
public Audit(String id, String time, String customerId, String customerName, String operation, String resourceType, String content, String details) {
this.id = id;
this.time = time;
this.customerId = customerId;
this.customerName = customerName;
this.operation = operation;
this.resourceType = resourceType;
this.content = content;
this.details = details;
}
}