У меня есть следующий код, который мне нужен, чтобы получить не нулевые результаты в некоторых полях, а проверить значения в других.(Я использую RestHighLevelClient)
Но я получил эту ошибку:
Причина: ElasticsearchStatusException [Исключение Elasticsearch [type = search_phase_execution_exception, причина = сбой всех шардов]]
....
Подавлено: org.elasticsearch.client.ResponseException: метод [POST], хост [http://192.168.8.101:9200], URI [/ _search? Typed_keys = true & ignore_unavailable = false & expand_wildcards = open & allow_no_indices= true & scroll = 1m & sear .....
{"error": {"root_cause": [{"type": "query_parsing_exception", "reason": "[существует] запрос не поддерживает [повышение]
Код:
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolQuery = new BoolQueryBuilder();
boolQuery.must(QueryBuilders.existsQuery("usuarioIntegracao"));
boolQuery.must(QueryBuilders.termsQuery("tabela", "Arquivo", "Mensagem"));
boolQuery.must(QueryBuilders.termQuery("statusTexto", "Erro"));
boolQuery.must(QueryBuilders.rangeQuery("dataEntrada")
.from("now-1d/d")
.timeZone("-03:00"));
searchSourceBuilder.query(boolQuery);
searchSourceBuilder.size(9999);
searchSourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));
searchRequest.source(searchSourceBuilder);
SearchResponse response = client.search(searchRequest, RequestOptions.DEFAULT);
И мне удалось найти то же самое на Почтальоне:
{
"size" : 1000,
"sort" : [
{"dataEntrada" : {"order" : "desc"}}
],
"query" : {
"bool":{
"must":[
{"terms":{ "tabela" : ["Arquivo", "Mensagem"] }},
{"term":{ "statusTexto" : "Erro" }},
{"exists" : { "field" : "usuarioIntegracao" }},
{"range" : {
"dataEntrada" : {
"gte" : "now-1d/d",
"lt" : "now/d",
"timeZone" : "-03:00"
}
}}
],
"should":{},
"must_not":{
}
}
}
}