插入文档
IndexRequest request = new IndexRequest("索引").id("id值").source(Map数据);
RestHighLevelClient.index(request, RequestOptions.DEFAULT);
获取一个文档
GetRequest getRequest = new GetRequest("索引", "id值");
RestHighLevelClient.get(getRequest, RequestOptions.DEFAULT);
判断文档是否存在
GetRequest getRequest = new GetRequest("索引", "id值");
getRequest.fetchSourceContext(new FetchSourceContext(false));
getRequest.storedFields("_none_");
RestHighLevelClient.exists(getRequest, RequestOptions.DEFAULT);
删除文档
DeleteRequest deleteRequest = new DeleteRequest("索引", "id值");
client.delete(deleteRequest, RequestOptions.DEFAULT);
更新文档
UpdateRequest request = new UpdateRequest("索引", "id值").doc(Map数据);
RestHighLevelClient.update(request, RequestOptions.DEFAULT);
批量更新(批量操作)(增删改)
BulkRequest request = new BulkRequest();
request.add(new IndexRequest("索引").id("id值1").source(XContentType.JSON, "field", "foo", "user", "lucky"));
request.add(new IndexRequest("索引").id("id值2").source(XContentType.JSON, "field", "bar", "user", "Jon"));
request.add(new DeleteRequest("索引", "id值"));
request.add(new UpdateRequest("索引", "id值").doc(XContentType.JSON, "other", "test"));
RestHighLevelClient.bulk(request, RequestOptions.DEFAULT);
批量查询
MultiGetRequest request = new MultiGetRequest();
request.add(new MultiGetRequest.Item("索引", "id值1"));
request.add(new MultiGetRequest.Item("索引", "id值2"));
request.add(new MultiGetRequest.Item("索引", "id值3"));
RestHighLevelClient.mget(request, RequestOptions.DEFAULT);
异步操作
ActionListener<SearchResponse> listener = new ActionListener<SearchResponse>() {
@Override
public void onResponse(SearchResponse searchResponse) {
}
@Override
public void onFailure(Exception e) {
}
};
RestHighLevelClient.indexAsync(request, RequestOptions.DEFAULT, listener);
条件构造查询
SearchRequest request = new SearchRequest(索引);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.xxx());
request.source(searchSourceBuilder);
RestHighLevelClient.search(request, RequestOptions.DEFAULT, listener);
SearchRequest request = new SearchRequest(索引);
request.types(类型);
request.types();
request.source(搜索源生成器);
request.source();
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.from(开始索引);
searchSourceBuilder.size(查询数量);
searchSourceBuilder.query(查询生成器);
searchSourceBuilder.sort("key",SortOrder.排序规则);
searchSourceBuilder.sort(SortBuilders.fieldSort("key").order(SortOrder.排序规则));
QueryBuilders;
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(查询生成器);
boolQueryBuilder.should(查询生成器);
boolQueryBuilder.mustNot(查询生成器);
boolQueryBuilder.filter(查询生成器);
IdsQueryBuilder idsQueryBuilder = QueryBuilders.idsQuery();
idsQueryBuilder.addIds(String ids...);
idsQueryBuilder.types(String types...);
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(key);
rangeQueryBuilder.gt(数值);
rangeQueryBuilder.gte(数值);
rangeQueryBuilder.lt(数值);
rangeQueryBuilder.lte(数值);
RegexpQueryBuilder regexpQueryBuilder = QueryBuilders.regexpQuery(key,正则表达式);
FuzzyQueryBuilder fuzzyQueryBuilder = QueryBuilders.fuzzyQuery(key, 模糊值);
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery(key,value);
PrefixQueryBuilder prefixQueryBuilder = QueryBuilders.prefixQuery(key,前缀值);
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(key,valye);
Operator operator = QueryBuilders.matchQuery(key,valye).operator();
MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(key,value);
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery(key,value1,value2...);