1.引入pom文件
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.8.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>6.8.3</version>
</dependency>
2.创建实体类
@Data
@Document(indexName = UserLstES .INDEX_NAME)
public class UserLstES {
public static final String INDEX_NAME = "user_lst";
public static final String INDEX_NAME_SEARCH = "user_lst_search";
@Id
@ApiModelProperty(value = "用户id")
private Long id;
@Field(type = FieldType.Keyword)
@ApiModelProperty(value = "用户名称")
private String userName;
@Field(type = FieldType.Integer)
@ApiModelProperty(value = "年龄")
private Integer age;
@Field(type = FieldType.Integer)
@ApiModelProperty(value = "身份证号")
private Integer idCard;
@Field(type = FieldType.Date, format= DateFormat.date,pattern ="yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@ApiModelProperty(value = "身份证有效期")
private Date startDate;
@Field(type = FieldType.Date, format= DateFormat.date,pattern ="yyyy-MM-dd HH:mm:ss")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
@ApiModelProperty(value = "身份证有效期至")
private Date endDate;
}
3.存入ES
@Component
public class UserLstESRepository extends BaseEsRepository<UserLstES,Long> {
}
List<UserLstES> UserLstESList = Lists.newArrayList();
UserLstES userLstES= new UserLstES();
userLstES.setUserName("1");
UserLstESList.add(userLstES);
boolean result =userLstESRepository.batchSave(UserLstESList, UserLstES.INDEX_NAME);
4.查询ES
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.must(QueryBuilders.termsQuery("age", age))
.must(QueryBuilders.boolQuery().should(QueryBuilders.boolQuery().filter(QueryBuilders.rangeQuery("startDate").to(DateUtil.formatNow("yyyy-MM-dd HH:mm:ss")))
.filter(QueryBuilders.rangeQuery("endDate").from(DateUtil.formatNow("yyyy-MM-dd HH:mm:ss")))));
List<UserLstES> esList= userLstESRepository.listSearch(UserLstES.INDEX_NAME, queryBuilder , null, null, null);
5.删除ES
BoolQueryBuilder queryBuilder = QueryBuilders.boolQuery();
queryBuilder.must(QueryBuilders.termsQuery("age", 12));
userLstESRepository.deleteByQuery(UserLstES.INDEX_NAME, queryBuilder, 1, TimeValue.timeValueSeconds(10));