ElasticsearchStatusException содержит нераспознанный параметр: [ccs_minimize_roundtrips]]]

Я пытаюсь выполнить простой поиск на сервере ElasticSearch и получаю следующую ошибку

ElasticsearchStatusException[Elasticsearch exception [type=illegal_argument_exception, reason=request [/recordlist1/_search] contains unrecognized parameter: [ccs_minimize_roundtrips]]]

Строка запроса: {"query":{"match_all":{"boost":1.0}}}

Я использую: elasticsearch-rest-high-level-client (артефакт maven)

SearchRequest searchRequest = new SearchRequest(INDEX);
        
        SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
        searchSourceBuilder.query(QueryBuilders.matchAllQuery());
        searchRequest.source(searchSourceBuilder);
        
        try 
        {
            
            
            System.out.print(searchRequest.source());
            SearchResponse response = getConnection().search(searchRequest,RequestOptions.DEFAULT);
            SearchHit[]  results=response.getHits().getHits();
            for(SearchHit hit : results)
            {
                String sourceAsString = hit.getSourceAsString();
                System.out.println( gson.fromJson(sourceAsString, Record.class).year);
            }
            
        } 
        catch(ElasticsearchException e) 
        {
            e.getDetailedMessage();
            e.printStackTrace();
        } 
        catch (java.io.IOException ex)
        {
            ex.getLocalizedMessage();
            ex.printStackTrace();
        }

person meyy    schedule 09.04.2019    source источник
comment
Какую версию ES вы используете и какую версию клиента ES вы используете? Кажется, вы смешиваете версию 7 с другой, но не знаете, какую именно.   -  person Val    schedule 10.04.2019


Ответы (4)


Обычно это происходит при переносе с версии эластичного поиска 6.X.X на 7.X.X.

Вам следует уменьшить версию эластичного поиска до 6.7.1 и попробовать запустить ее.

Поскольку вы используете maven, вы должны убедиться, что ваши зависимости должны быть такими:

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>6.7.1</version>
</dependency>
person YetAnotherBot    schedule 12.04.2019
comment
Это недопустимое решение, если вы действительно хотите работать с ElasticSearch 7.X.X. - person Sulejmani; 23.07.2019
comment
@Sulejmani Это правда. Это просто указывает на возможный сценарий. Я исправил это, уменьшив версию. Это будет работать особенно для людей, которые без необходимости переходят на 7.X.X. - person YetAnotherBot; 24.07.2019
comment
Как тогда обновиться с 6.1.1 до 7.3.0? Последовательное обновление поддерживается с 5.6 -> 6.8. Потом 6,8 -> 7,3. Должен ли я сначала обновить пакет ES, а затем пакет REST? Или наоборот? Примечание. В версии 6.1.1 есть глупая ошибка, из-за которой _doc нельзя использовать в качестве типа; поэтому в настоящее время я использую doc в качестве типа. - person user2833162; 09.08.2019
comment
Ага. Переход с ‹v7.X.X на ›= v7.X.X довольно сложен. Это связано с тем, что существует много критических изменений с 6.x.x до 7.x.x. Надеюсь, ваше приложение многоуровневое и имеет какое-то внедрение зависимостей. Таким образом, вы могли бы постепенно начать преобразовывать некоторые API, такие как сначала поиск, затем обновление и т. д. - person YetAnotherBot; 09.08.2019
comment
Кроме того, тип afair не поддерживается после 6.x.x. - person YetAnotherBot; 09.08.2019
comment
Вопрос в том, чтобы версия вашего клиента была совместима с версией эластичного поиска, в моем случае я использовал версию 7.xx на клиенте для запуска запроса, и произошла ошибка, так как я не могу изменить свой клиент, который я обновил из elasticsearch. - person phdias; 13.08.2020

Я столкнулся с этой же проблемой, когда по ошибке мой кластер 6.5 все еще работал при использовании API 7.2. Как только я запустил свой кластер 7.2, исключение исчезло.

person denov    schedule 19.10.2019

Возможно, вы можете найти это в stackTrace исключения:

Suppressed: org.elasticsearch.client.ResponseException: method [POST], host [http://127.0.0.1:9200], URI [/recordlist1/_search?rest_total_hits_as_int=true&typed_keys=true&ignore_unavailable=false&expand_wildcards=open%2Cclosed&allow_no_indices=true&ignore_throttled=false&search_type=query_then_fetch&batched_reduce_size=512], status line [HTTP/1.1 400 Bad Request]

{error:{root_cause:[{type:illegal_argument_exception,reason:request [/_search] содержит нераспознанные параметры: [ignore_throttled], [rest_total_hits_as_int]}],type:illegal_argument_exception,reason:request [/_search] содержит нераспознанные параметры: [ignore_throttled ], [rest_total_hits_as_int]}, статус: 400}

Итак, вы можете попробовать этот метод GET с помощью curl, который приходит к тому же сообщению об ошибке.

curl -XGET http://127.0.0.1:9200/recordlist1/_search?rest_total_hits_as_int=true&typed_keys=true&ignore_unavailable=false&expand_wildcards=open%2Cclosed&allow_no_indices=true&ignore_throttled=false&search_type=query_then_fetch&batched_reduce_size=512

Я пробовал удалить 'rest_total_hits_as_int=true'... Дело закрыто.

Вы должны проверить версию вашего es-сервера с помощью elasticsearch -V и версию клиента в maven.

В высокоуровневом клиенте они добавляют rest_total_hits_as_int=true по умолчанию, и я не нахожу доступа, чтобы установить для него значение false.

вы можете обратиться к

org.elasticsearch.client.RequestConverters#addSearchRequestParams Line:395 <v6.8.10> 

У меня не было другого выбора, кроме как сопоставить клиента с сервером.

Почему это так захватывающе? эх... в конце концов, это высокий уровень.

person Debuff    schedule 30.07.2020

Проблема здесь в изменении версии, возможно, вы использовали эластичный поиск 6.x.x, а теперь используете 7.x.x.

Вы определенно можете решить эту проблему, используя эластичный поисковый сервер версии 7.x.x.

Elasticsearch 6.x.x used to have type of document 
(where you could give type to your documents)


but Elasticsearch 7.x.x onwards it has no type or 
default type _doc, so you need to have _doc as your type 
while creating mapping.
person Anshul Sharma    schedule 30.07.2020