将传输客户端迁移到 RestHighLevelClient 搜索查询

问题描述

我是弹性搜索的新手。我必须将搜索查询从传输客户端迁移到 RestHighLevelClient。

以下是我需要迁移的传输客户端代码

SearchRequestBuilder searchRequestBuilder = Client.prepareSearch(elasticsearchIndex);
    
            try {
                searchRequestBuilder.
                        setQuery(generateBoolQuery(keyword))
                        .setFrom(0).setSize(100).setExplain(true)
                        .execute().actionGet();
            } catch (Exception ex) {
                LOGGER.debug(errorMessage,ex);
                throw new BadKeywordFormatException("Keyword \'" + keyword + "\' has " + "Unsupported characters. ",ex);
            } 


I have written corresponding code as 

     SearchRequest searchRequest = new SearchRequest(elasticsearchIndex);
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(generateBoolQuery(keyword));
        searchSourceBuilder.from(0).size(100).explain(true);
        searchRequest.source(searchSourceBuilder);
        SearchResponse searchResponse;
        try {
             searchResponse = elasticsearchClient.search(searchRequest,RequestOptions.DEFAULT);
        } catch (IOException e) {
            LOGGER.debug(errorMessage,e);
            throw new BadKeywordFormatException("Keyword \'" + keyword + "\' has " + "Unsupported characters. ",e);
        }

请告诉我这段代码有什么问题?请帮我正确对应的代码

我正在附加执行此查询时收到的错误日志。

错误日志

Exception in thread "main" ElasticsearchStatusException[Elasticsearch exception [type=search_phase_execution_exception,reason=all shards Failed]]
        at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:177)
        at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:1727)
        at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:1704)
        at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1467)
        at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1424)
        at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1394)
        at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:930)



================================================================================================


        Suppressed: org.elasticsearch.client.ResponseException: method [POST],host [https://localhost:9200],URI [/index_name/_search?typed_keys=true&ignore_unavailable=false&expand_wildcards=open&allow_no_indices=true&ignore_throttled=true&search_type=query_then_fetch&batched_reduce_size=512&ccs_minimize_roundtrips=true],status line [HTTP/1.1 400 Bad Request]
{"error":{"root_cause":[{"type":"query_shard_exception","reason":"Failed to create query: {\n  \"bool\" : {\n    \"filter\" : [\n      {\n        \"bool\" : {\n          \"should\" : [\n            {\n              \"regexp\" : {\n                \"name\" : {\n                  \"value\" : \"/\\\\b(?:\\\\d[ -]*?){13,16}\\\\b/\",\n                  \"flags_value\" : 65535,\n                  \"max_determinized_states\" : 10000,\n                  \"boost\" : 1.0\n                }\n              }\n            }\n          ],\n          \"adjust_pure_negative\" : true,\n          \"boost\" : 1.0\n        }\n      }\n    ],\n    \"adjust_pure_negative\" : true,\n    \"boost\" : 1.0\n  }\n}","index_uuid":"wPZPF4RH2gMlH","index":"index_name"}],"type":"search_phase_execution_exception","reason":"all shards Failed","phase":"query","grouped":true,"Failed_shards":[{"shard":0,"index":"index_name","node":"jKaYqlQwCHqlch","reason":{"type":"query_shard_exception","caused_by":{"type":"illegal_argument_exception","reason":"expected ']' at position 25"}}}]},"status":400}
                at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:253)
                at org.elasticsearch.client.RestClient.performRequest(RestClient.java:231)
                at org.elasticsearch.client.RestClient.performRequest(RestClient.java:205)
                at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1454)

提前致谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)