es java match_Java调用Elasticsearch API查询及matchPhraseQuery和matchQuery的区别

importorg.elasticsearch.action.search.SearchRequestBuilder;importorg.elasticsearch.action.search.SearchResponse;importorg.elasticsearch.client.transport.TransportClient;importorg.elasticsearch.common.settings.Settings;importorg.elasticsearch.common.transport.TransportAddress;importorg.elasticsearch.index.query.QueryBuilders;importorg.elasticsearch.search.SearchHit;importorg.elasticsearch.search.sort.SortOrder;importorg.elasticsearch.transport.client.PreBuiltTransportClient;importorg.junit.Test;importjava.net.InetAddress;importjava.net.UnknownHostException;importjava.util.Map;public classElasticsearchTest {

@Testpublic void queryTest() throwsUnknownHostException {//集群设置//Settings settings = Settings.builder().put("cluster.name", "myClusterName").build();//设置ES实例的名称

Settings settings = Settings.builder().put("client.transport.sniff", false).build();

TransportClient client= newPreBuiltTransportClient(settings);

client.addTransportAddress(new TransportAddress(InetAddress.getByName("172.16.4.141"), 9300));

SearchRequestBuilder searchBuilder= client.prepareSearch("logstash-*").setSize(10).setFrom(0);

searchBuilder.addSort("@timestamp", SortOrder.DESC);

searchBuilder.setQuery(QueryBuilders.multiMatchQuery("Success", "logger_name", "message", "host"));

searchBuilder.setQuery(QueryBuilders.matchPhraseQuery("level", "INFO"));

searchBuilder.setQuery(QueryBuilders.matchPhraseQuery("appName", "backend-sync"));

searchBuilder.setQuery(QueryBuilders.rangeQuery("@timestamp").from("2018-12-04T10:50:19.379Z").to("2018-12-04T10:58:19.379Z"));

SearchResponse response=searchBuilder.execute().actionGet();

System.out.println("TotalHits:" +response.getHits().getTotalHits());

System.out.println("TotalHits Return:" +response.getHits().getHits().length);

System.out.println("MaxScore:" +response.getHits().getMaxScore());for(SearchHit hit : response.getHits()) {

Map map =hit.getSourceAsMap();if (map != null) {

System.out.println(hit.getSourceAsString());

}

}

client.close();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值