Elasticsearch 是一个的分布式搜索和分析引擎。可以通过Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 可视化界面使您能够以交互方式探索、可视化查看和分享对数据的见解,并管理和监控堆栈。
1.导入相关的依赖包,排除log4j,log4j存在一定的漏洞,如果需要日志,根据需要导入相应的依赖即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
<exclusions>
<exclusion>
<artifactId>log4j-api</artifactId>
<groupId>org.apache.logging.log4j</groupId>
</exclusion>
</exclusions>
</dependency>
2.在配置文件中配置es的连接,自行配置开启密码进行连接
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=xx.xx.xx.xx:9300
3.配置要进行访问的实体类的,在系统上索引的名字全部为小写,通过这个索引名字可以用来执行索引、搜索、更新和删除操作
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;
@Document(indexName = "gridconnectionplatform", type = "docs", shards = 1, replicas = 0)
@AllArgsConstructor
@NoArgsConstructor
@Data
public class GridConnectionPlatform {
@Id
private Long id;
/**
* 可以进行相关的分析
* 可以根据需要配置相应的分词
*/
@Field(type = FieldType.Text, analyzer = "ik_smart")
private String title;
/**
*
*/
@Field(type = FieldType.Text)
private String custom;
}
4.配置相应的持久层进行访问
import com.south.wires.entity.es.GridConnectionPlatform;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface GridConnectionPlatformRepository extends ElasticsearchRepository<GridConnectionPlatform, Long> {
}
5.控制层的操作查询
@RequestMapping("xxxx")
public JsonResult queryContent(String title) {
NativeSearchQueryBuilder queryBuilder = new NativeSearchQueryBuilder();
// 添加基本分词查询
queryBuilder.withQuery(QueryBuilders.matchQuery("title", title));
Page<GridConnectionPlatform> page = GridConnectionPlatformRepository.search(queryBuilder.build());
Iterator iterator = page.iterator();
//获取匹配返回前10条数据
while (iterator.hasNext()) {
//此时获取到查询的内容
GridConnectionPlatform gridConnectionPlatform=(GridConnectionPlatform) iterator.next();
}
}
本文暂时没有评论,来添加一个吧(●'◡'●)