搜索未返回预期结果

我正在尝试连接到 elasticsearch 并在 6.3.2 版本中进行一些基本查询。


我正在尝试的代码是这样的:


RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 30100, "http")));


SearchRequest sr = new SearchRequest(INDEX);

sr.indicesOptions(IndicesOptions.lenientExpandOpen());


SearchSourceBuilder ssb = new SearchSourceBuilder();

sr.source(ssb);


MatchQueryBuilder builder = QueryBuilders.matchQuery("logLevel.keyword", "ERROR");

    QueryBuilder qb = QueryBuilders.boolQuery().must(builder);

    ssb.query(qb);


SearchResponse response = null;


try {

    response = client.search(sr);

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

} catch (IOException e) {

    e.printStackTrace();

} finally {

    try {

        client.close();

    } catch (IOException e) {

        e.printStackTrace();

    }

}


System.out.println(response);

更新 正如建议的那样,我现在才使用查询。我尝试了来自 API 的构建查询,我看到了结果,但由于某种原因response.getHits().getTotalHits()返回零。生成的查询如下所示,并在 kibana 中给了我预期的结果,即总数为 1 :


GET /_search

{

  "from": 0,

  "query": {

    "bool": {

      "must": [

        {

          "match": {

            "logLevel.keyword": {

              "query": "ERROR",

              "operator": "OR",

              "prefix_length": 0,

              "max_expansions": 50,

              "fuzzy_transpositions": true,

              "lenient": false,

              "zero_terms_query": "NONE",

              "auto_generate_synonyms_phrase_query": true,

              "boost": 1

            }

          }

        }

      ],

      "adjust_pure_negative": true,

      "boost": 1

    }

  }

}

是否缺少 restclient 的一些配置?


守着一只汪
浏览 123回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java