准备
(一)加maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.2.9.RELEASE</version>
</dependency>
(二) 配置application.properties文件
spring.data.elasticsearch.cluster-name=my-es
spring.data.elasticsearch.cluster-nodes=ip:9300
(三) 部分使用到的vo类
插入es中的vo类
@Document(indexName = "es_index_prefix_20201003", type = "es_type", shards = 1, replicas = 0)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ItemEsSearch {
@Id
private String id;
@Field(type = FieldType.Text, analyzer = "ik_max_word")
private String describe;
@Field(type = FieldType.Keyword)
private String name;
@Field(type = FieldType.Keyword)
private String item;
@Field(type = FieldType.Date)
private Date serverTime;
}
es中列名类
public class ItemEsQueryCommon {
public final static String ITEM = "item";
public final static String NAME = "name";
public final static String DESCRIBE = "describe";
public final static String SERVER_TIME = "serverTime";
public final static String ID = "_id";
}
(四) 普通分页查询
查询每页数据
/**
* es 索引前缀
*/
public final static String INDEX_PREFIX = "es_index_prefix_";
/**
* type
*/
private final static String INDEX_TYPE = "es_type";
/**
* 格式化的时间
*/
private final static String DATE_FORMATTER = "yyyyMMdd";
@Override
public List<ItemEsSearch> findInstance(ItemEsQueryVO esQuery, PagerPlugin pagerPlugin) {
NativeSearchQuery nativeSearchQuery = buildNativeSearchQueryWithPage(esQuery)
.withPageable(PageRequest.of(pagerPlugin.getCurrPage() - 1, pagerPlugin.getPageSize()))
.build();
Gson gson = new GsonBuilder().setDateFormat("YYYY-MM-dd'T'HH:mm:ss").create();
return elasticsearchTemplate.query(nativeSearchQuery, response -> {
List<ItemEsSearch> itemEsSearches = new ArrayList<>();
SearchHits hits = response.getHits();
Arrays.stream(hits.getHits()).forEach(h -> {
String source = h.getSourceAsString();
ItemEsSearch itemEsSearch = gson.fromJson(source, ItemEsSearch.class);
itemEsSearch.setId(h.getId());