ElasticSearch使用java-api方式查询

 PutMappingRequest mappingRequest =Requests.putMappingRequest(tableName).type(tableName);
XContentBuilder builder =
        XContentFactory.jsonBuilder().startObject().field("properties")
                .startObject().field(column).startObject()
                .field("type","text").field("fielddata", "true").endObject()
                .endObject().endObject();
mappingRequest.source(builder);
client.admin().indices().putMapping(mappingRequest).actionGet();
BoolQueryBuilder bQueryBuilder = QueryBuilders.boolQuery();
SearchRequestBuilder sbuilder = client.prepareSearch(tableName());
sbuilder.setQuery(bQueryBuilder);
sbuilder.addAggregation(tb);
sbuilder.addSort(排序列名, SortOrder.DESC);//添加排序,可多个
SearchResponse response = sbuilder.execute().actionGet();

-------------------------------------------------建立查询

//es集群配置信息
Settings settings = Settings.builder().put("cluster.name","es-cluster").put("client.transport.sniff", true).build();
//建立连接
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new TransportAddress(地址, 端口号));
BoolQueryBuilder bQueryBuilder = QueryBuilders.boolQuery();
bQueryBuilder.must(QueryBuilders.matchPhraseQuery("tpss_acct_item_tp_nm", "4G"));
SearchResponse response = client.prepareSearch(表名)
//.setQuery(bQueryBuilder)
.setFrom(0).setSize(10).setExplain(false)
.execute().actionGet();
SearchHits shs = response.getHits();
System.out.println("总数:"+shs.getTotalHits());
for(SearchHit hit : shs){
System.out.println(hit.getSourceAsString());
}

猜你喜欢

转载自blog.csdn.net/qq_41782949/article/details/84062335