常用 API
1.获取集群设置
public final RestClient restClient = RestClient
.builder(new HttpHost("172.18.90.40", 9200, "http"))
.build();
@Test
public void search() throws IOException {
Map<String, String> params = Collections.emptyMap();
String queryString = "{" +
" \"size\": 20," +
" \"query\": {" +
" \"range\": {" +
" \"createTime\": {" +
" \"gte\": \"2018-06-01 00:00:00\"" +
" }" +
" }" +
" }" +
"}";
HttpEntity entity = new NStringEntity(queryString, ContentType.APPLICATION_JSON);
try {
Response response = restClient.performRequest("GET", "/some_important_index*/_search", params, entity);
System.out.println(response.getStatusLine().getStatusCode());
String responseBody = null;
responseBody = EntityUtils.toString(response.getEntity());
System.out.println("******************************************** ");
JSONObject jsonObject = JSON.parseObject(responseBody);
System.out.println(jsonObject.get("hits"));
}catch (ResponseException e){
e.printStackTrace();
}
System.out.println("23333");
}
2.常用rest请求
term 精确查找,匹配多个值 terms
{ "query": { "term": { "FIELD": { "value": "VALUE" } } } } // 多个值 { "query": { "terms": { "FIELD": [ "VALUE1", "VALUE2" ] } } }
nested类型字段,每个path要一层层点下去
{ "query": { "bool": { "must": [{ "nested": { "path": "relations", "query": { "term": { "relations.relationTypeName": { "value": "运行于" } } } } }, { "nested": { "path": "relations", "query": { "nested": { "path": "relations.instances", "query": { "term": { "relations.instances.instanceName": { "value": "APPID_mcrm-zuul-core" } } } } } } }, { "bool": { "should": [{ "query_string": { "default_field": "resourceType.resourceTypeCode", "query": "mo*" } }, { "term": { "resourceType.resourceTypeCode": { "value": "container" } } } ] } } ] } } }
对应 hightlevelclient
BoolQueryBuilder instanceQueryBuilder = QueryBuilders.boolQuery(); instanceQueryBuilder.must(QueryBuilders.nestedQuery("relations", QueryBuilders.termQuery("relations.relationTypeName", "归属于"), ScoreMode.None)); instanceQueryBuilder.must(QueryBuilders.nestedQuery("relations", QueryBuilders.nestedQuery("relations.instances", QueryBuilders.termQuery("relations.instances.instanceName", appId), ScoreMode.None), ScoreMode.None));
← 9.x-pack插件 11.优化→