Хобрук: Ваш путь к мастерству в программировании

Совместное использование конфигурации сопоставления индексов в NEST 2.3.3?

Обновление поиска Elastic и NEST с 1.6.2 до 2.3.3.

Раньше мы могли делиться одним и тем же PutMappingDescriptor между ElasticClient.CreateIndex() и ElasticClient.Map().

Но в версии 2.3.3 для CreateIndex требуется TypeMappingDescriptor, а для Map требуется PutMappingDescriptor.

Как мы можем использовать одну и ту же конфигурацию сопоставления?


  • Меня тоже интересует такой же вопрос. 14.07.2016

Ответы:


1

Официальные разработчики Nest ответили на этот вопрос в своем github, ссылка здесь.

По сути, вы используете не Func<PutMappingDescriptor<Project>, IPutMappingRequest>, а PutMappingDescriptor<Project> напрямую. создав новый PutMappingDescriptor<Project> и создав оттуда свою беглую картографию.

При создании индекса ожидается ITypeMapping, а при обновлении индекса ожидается IPutMappingRequest, который реализует ITypeMapping. Таким образом, вы можете удовлетворить оба, используя PutMappingDescriptor.

Чтобы создать индекс, используйте:

``` client.CreateIndex("проекты", c => c .Mappings(ms => ms .Map(m => GetMapping()) ) );

``` где вы игнорируете m, переданный в лямбде, и используете тот, который вы создали. Причину, по которой вы можете это сделать, можно найти в исходный код, где он создает пустой TypeMappingDescriptor для дальнейшего использования:

public MappingsDescriptor Map<T>(Func<TypeMappingDescriptor<T>, ITypeMapping> selector) where T : class => Assign(typeof (T), selector?.Invoke(new TypeMappingDescriptor<T>()));

Чтобы обновить сопоставление, выполните следующие действия:

client.Map(GetMapping());

12.08.2016
Новые материалы

Структуры данных в C ++ - Часть 1
Реализация общих структур данных в C ++ C ++ - это расширение языка программирования C, которое поддерживает создание классов, поэтому оно известно как C с классами . Он используется для..

Как я опубликовал свое первое приложение в App Store в 13 лет
Как все началось Все началось три года назад летом после моего четвертого класса в начальной школе. Для меня, четвертого класса, лето кажется бесконечным, пока оно не закончится, и мой отец..

Что в лицо
Очерк о возвращении физиогномики и о том, почему мы должны это приветствовать. История начинается со странной науки. Р. Тора Бьорнсдоттир, Николас О. Рул. Видимость социального класса по..

Почему шаблоны проектирования и почему нет?
Сложность — мать всех проблем в программировании. Программное обеспечение должно быть разработано с точки зрения того, кто его поддерживает, а не того, кто его пишет, потому что программное..

Создание дизайна обуви с помощью машинного обучения
Обувь. Что подождать? Я думал, что речь пойдет о машинном обучении! Ну это так. Если бы вы пошли на Amazon, сколько обуви вы бы нашли? Наверное, много, не так ли? Но много ли в них..

GraalVM в 2022 году: итоги года
2022 год был очень продуктивным для проекта и сообщества GraalVM. Вместе мы разработали множество новых функций, выпустили GraalVM для последних версий Java и новых платформ и увидели несколько..

Быстрая разработка: волшебный мир больших языковых моделей
РУКОВОДСТВО Быстрая разработка: волшебный мир больших языковых моделей Подход, основанный на данных, для получения наилучшего ответа Искусство и наука Можно ли совместить машинное..