如何解决将传输客户端迁移到 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 举报,一经查实,本站将立刻删除。