Метод SearchDescriptor.Type отсутствует в Nest 7.x - PullRequest
0 голосов
/ 09 июля 2019

В настоящее время мы используем библиотеку Nest версии 5.x. Поскольку мы уверены, что Nest 7.x быстрее, мы планируем обновить версию с 5.x до 7.x. При обновлении версии библиотеки я обнаружил, что в Nest версии 7.x отсутствуют некоторые методы.

У нас есть листинги и листинг два индекса. Listings является родительским индексом листинга (например: Listings / Listing / _search). У нас есть один класс расширения, который помогает взаимодействовать с Nest. Этот класс имеет один метод Search, как показано в разделе кода. Этот метод использует Тип метода SearchDescriptor . Чего не хватает в Next 7.x.

    public static async Task<ElasticsearchResult<ISearchResponse<T>>> SearchAsync<T>(
        this Elasticsearch elasticsearchClient,
        SearchDescriptor<T> searchDescriptor, 
        int from = MinResultWindowSize, 
        int to = MaxResultWindowSize) where T : class
    {
        return await Elasticsearch.PerformTaskWithExceptionHandlingAsync(async () =>
        {
            searchDescriptor
                .Index(Elasticsearch.MetaData.IndexMetaData.IndexName)
                .Type(Elasticsearch.MetaData.IndexMetaData.ParentIndexType)
                .From(from)
                .Size(to);

            var result = await Elasticsearch.Client.SearchAsync<T>(searchDescriptor).ConfigureAwait(false);
            if (!result.IsValid)
            {
                throw new ElasticsearchClientException(result.DebugInformation ??
                                                        result.ApiCall?.OriginalException?.Message ??
                                                       "Debug information not available in response.");
            }

            return ElasticsearchResult.Ok(result);

        }).ConfigureAwait(false);
    }

Мне нужна помощь для замены вышеуказанного кода, чтобы он был совместим с Nest 7.x.

1 Ответ

0 голосов
/ 10 июля 2019

Метод типа отсутствует в NEST 7.x, поскольку в Elasticsearch 7.x устаревшие типы объявлены устаревшими как часть плана удаления типов отображения .

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

...