Elasticsearch基础java-api讲解

  • Post author:
  • Post category:java


java对es的操作主要是查询和聚合,想做上面两个操作先拼装DSL,然后执行DSL

封装查询DSL的两种方式

org.elasticsearch.search.builder SearchSourceBuilder(org.elasticsearch.index.query)

com.google.gson.JsonObject

今天讲第一种方式拼接DSL:(第二种主要拼接jsonarray,和方式一大致相同。)

常见的方式有

SearchSourceBuilder oSearchSrcBuilder=new SearchSourceBuilder();

BoolQueryBuilder oQuery=new BoolQueryBuilder();

中间用oQuery.must() 或者mustnot()或者shuould()一系列的api

封装oSearchSrcBuilder.query(oQuery);

聚合的api

AggregationBuilders .terms(sAggName.trim()) .field(sAggField).size(nSize);

//要加执行的索引

Search oSearch = new Search.Builder(oSearchSrcBuilder.toString()).addIndices(xxxx).build();

获取客户端的连接方式

if (client == null) {


JestClientFactory factory = new JestClientFactory();

factory.setHttpClientConfig(new HttpClientConfig

.Builder(getESHost())

.multiThreaded(true)

.defaultMaxTotalConnectionPerRoute(2)//Per default this implementation will create no more than 2 concurrent connections per given route

.maxTotalConnection(20) // and no more 20 connections in total

.readTimeout(180000)//设置读取超时时间

.build());

client = factory.getObject();

JestClient client = JestHelper.getClient();

执行DLS SearchResult searchResult = client.execute(oSearch);

好了 这就获得了你想要的结果集



版权声明:本文为qq_20744301原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。