У нас есть приложение, которое мы хотим перенести с solr наasticsearch. Я изо всех сил пытаюсь найти правильный способ сделать следующее (у нас есть 10 таких полей).
У нас есть текстовое поле, которое нужно индексировать и искать с использованием определенных анализаторов в зависимости от языка. Но нужно искать по тому же имени. Таким образом, в Solr мы можем иметь поля «title_fr» и «title_en» и иметь настройку псевдонима, которая будет возвращать / искать оба при поиске в поле «title», но в любой момент времени у нас заполнено только 1 из этих полей для каждого документа, и поэтому это работает.
Теперь я знаю, что вasticsearch псевдоним может иметь только 1 цель, поэтому я начал изучать несколько полей. Но проблема с несколькими полями, которую я вижу, состоит в том, что она хранит, создает и индексирует для каждого подполя в ней. Таким образом, если у меня есть мультиполе с именем title, а затем подполе с именем title.en и одно с именем title.fr, если я добавлю для индексации заголовок, он будет добавлен как в title.en, так и в title.fr, используя указанные анализаторы. Это становится проблемой, потому что поиск в заголовке вызовет анализатор поиска для обоих и вернет потенциальные ложные срабатывания на противоположном языке. Не говоря уже о том, что он также удваивает наш размер индекса.
Другие варианты, которые я видел, - это создание индекса для каждого языка и создание перекрестного псевдонима.
Я использую C# Nest для сделайте эту работу тоже, если это поможет.