插入数据
IndexRequest indexRequest = new IndexRequest("reply_log","_doc");
HashMap<String, Objects> json = new HashMap<>();
ReplyLogDO replyLogDO = new ReplyLogDO("1", "2", new Date().getTime(), -1l);
String jsonString = JSON.toJSONString(replyLogDO);
System.out.println(jsonString);
indexRequest.source(jsonString, XContentType.JSON);
indexRequest.setRefreshPolicy(WriteRequest.RefreshPolicy.WAIT_UNTIL);
client.index(indexRequest, RequestOptions.DEFAULT);
查找数据
SearchRequest searchRequest = new SearchRequest("reply_log");
searchRequest.types("_doc");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
Date pass7day = DateUtils.addDays(new Date(), -7);
searchSourceBuilder.query(QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("uid", "1"))
.must(QueryBuilders.matchQuery("sellerUid", "2"))
.must(QueryBuilders.termQuery("duration", -1))
.must(QueryBuilders.rangeQuery("createTime").gt(pass7day.getTime())))
.sort("createTime", SortOrder.DESC)
.size(1);
searchSourceBuilder.fetchSource(new String[]{"_id", "duration","createTime"}, new String[]{});
searchRequest.source(searchSourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
SearchHits hits = response.getHits();
TotalHits total = hits.getTotalHits();
if (total.value > 0) {
String id = hits.getAt(0).getId();
Object duration = hits.getAt(0).getSourceAsMap().get("duration");
Object createTime = hits.getAt(0).getSourceAsMap().get("createTime");
ReplyLogDOTop aDo = new ReplyLogDOTop(null,null,Long.valueOf(createTime.toString()),Long.valueOf(duration.toString()));
aDo.setId(id);
return aDo;
}
更新数据
方式一
UpdateRequest updateRequest = new UpdateRequest("reply_log", "_doc", "19eAxI8BgsaKhROuUEVr").doc("duration",value);
UpdateResponse update = client.update(updateRequest, RequestOptions.DEFAULT);