簡體   English   中英

Java(ElasticSearch)-由於字段眾多,因此生成查詢

[英]Java (ElasticSearch) - build query due to the many fields

我使用Java和Java高級REST客戶端。 我需要建立將查找文檔的查詢。 此查詢應包含許多要搜索的字段。 例如,我有這樣的json:

{
  "timeStamp": "Fri, 29 Dec 2017 15:32:22 +0000",
  "value": 314,
  "operation": "http://software-testing.ru/library/testing/testing-tools/2638-postman",
  "type": "duration",
  "system": "front-admin"
}

由於所有字段,我需要查找所有文檔。 我了解由於一個字段(參數)如何使查詢變得緊湊,但是不知道如何使用很多字段進行查詢:

@PostMapping("/findMetricsByValues") @Transactional public ResponseEntity findMetricsByValues(@RequestBody ElasticSearchMetrics metrics){

    SearchRequest searchRequest = new SearchRequest();

    SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
    sourceBuilder.query(QueryBuilders.termQuery("value",  metrics.getValue()));
    searchRequest.source(sourceBuilder);
    SearchResponse searchResponse = null;
    try {
        searchResponse = client.search(searchRequest);
    } catch (IOException e) {
        e.printStackTrace();
    }
    return new ResponseEntity<>(new GenericResponse(searchResponse, CODE_200), HttpStatus.OK); }

有人可以提供幫助或提供提示嗎?

  1. 您可以改用QueryBuilders.queryStringQuery(String query)方法。在此方法中,您可以根據may字段編寫查詢。下面是一個可以幫助您的鏈接-> https://www.elastic.co/guide/zh/elasticsearch/ reference / 2.4 / query-dsl-query-string-query.html有很多類似AND或OR的子句,用於連接多個查詢。 這是用於以字符串形式編寫查詢的語法-> https://www.elastic.co/guide/zh-cn/elasticsearch/reference/2.4/query-dsl-query-string-query.html#query-string-syntax
  2. 您可以使用布爾查詢-> https://www.elastic.co/guide/zh-cn/elasticsearch/reference/2.4/query-dsl-bool-query.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM