Как проиндексировать смешанное языковое содержимое на Elasticsearch? - PullRequest
0 голосов
/ 08 июня 2018

Как индексировать содержимое смешанного языка в Elasticsearch.Допустим, у нас есть система, в которой люди подают контент из разных уголков мира.Страны варьируются от США, Канады, Европы, Японии, Кореи, Индии, Китая, Кении, арабов, России до всех других частей мира.

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

Нам нужно простое решение для эффективной индексации этого содержимого в Elasticsearch свозможность полнотекстового поиска, а также поиск нечетких строк.Может ли кто-нибудь помочь в этом отношении?

1 Ответ

0 голосов
/ 04 июля 2018

Какую цель вы хотите достичь?Вы хотите, чтобы хиты были только на языке, используемом во время запроса?Или вы также принимаете хиты на любом другом языке?

Один из подходов состоит в том, чтобы запускать все анализаторы языка различных языковasticsearch на входе и сохранять результат в отдельных полях, например, с суффиксом языка текущего анализатора.,Затем во время запроса вам придется искать во всех этих полях, если у вас нет способа угадать наиболее релевантные из них.

Однако, это может взорваться, так как вы создаете множество неиспользованных дубликатов.Это ИМХО также менее элегантно, чем наличие отдельных индексов.

Я настоятельно рекомендую оценить, действительно ли вы не знаете, сколько языков вы увидите во время производства.Наличие отдельного индекса для каждого языка даст вам гораздо больший контроль над вводом / выводом и позволит вам точно настроить ваш движок для фактического варианта использования.

В качестве альтернативы, вы можете начать с простого токенизатора пробелов и оценитькачество результатов поиска (для каждого варианта использования).У вас не будет специфического языка, но по крайней мере потоки токенов для большинства языков.

...