ElasticSearch Java Client: TransportClient 查詢操作

ElasticSearch 5.6版本之前,均使用TransportClient Java Client,5.6之后建議使用RestHighLevelClient,可參考ElasticSearch Java Client: RestHighLevelClient 查詢操作

 TransportClient client = new PreBuiltTransportClient(Settings.builder()
                    .put("cluster.name", "net_device_log_cluster").build())
                    //這里的端口是9300,而不是rest請求的9200端口
                    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("10.44.100.116"), 9300))
                    .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("10.44.100.141"), 9300));
 BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
 boolQuery.must(QueryBuilders.wildcardQuery("host", "10.229.208.*"));
 boolQuery.mustNot(QueryBuilders.matchQuery("message", "DISPLAY_CMDRECORD"));
 boolQuery.mustNot(QueryBuilders.matchQuery("message", "SUPPRESS_LOG"));
 boolQuery.filter(QueryBuilders.rangeQuery("@timestamp").gte(start).lte(end));
 String[] includeFields = new String[] {"message", "@timestamp"};
 String[] excludeFields = new String[] {};
 SearchResponse searchResponse = client.prepareSearch(index).setTypes("network")
                .setQuery(boolQuery).setFetchSource(includeFields, excludeFields).get();
 SearchHits hits = searchResponse.getHits();
 SearchHit[] searchHits = hits.getHits();
 for(SearchHit hit : searchHits) {
      System.out.println(hit.getSourceAsString());
  }

注意:
1 ElasticSearch的版本和Java Client的版本要匹配

Get請求查看ElasticSearch版本和cluster_name
postman get: http://host_ip:9200
{
    "name": "net-node-3",
    "cluster_name": "net_device_log_cluster",
    "cluster_uuid": "eQoCPBWNRSCJcUVISB9jpw",
    "version": {
        "number": "5.5.1",
        "build_hash": "19c13d0",
        "build_date": "2017-07-18T20:44:24.823Z",
        "build_snapshot": false,
        "lucene_version": "6.6.0"
    },
    "tagline": "You Know, for Search"
}

2 在使用SpringBoot框架的后臺中,一定要通過properties方式指定ElasticSearch的版本,否則會加載SpringBoot默認的版本,有可能報錯

<properties>
        <java.version>1.8</java.version>
        <elasticsearch.version>5.0.0</elasticsearch.version>
<properties>
<dependencies>
    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>transport</artifactId>
    </dependency>
</dependencies>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容