При работе с синонимами существует два подхода:
- расширение их во время индексации,
- расширение их во время запроса.
Расширение синонимов во время запроса не рекомендуется, поскольку это вызывает проблемы с:
- , так как синонимы имеют разные частоты документа,
- синонимы с несколькими токенами, поскольку анализатор запросов разделяется на пробелы.
Подробнее об этом можно узнать по адресу http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#solr.SynonymFilterFactory (на вики Solr, но актуально и для ElasticSearch).
Таким образом, рекомендуемый подход заключается в расширении синонимов во время индексации. В вашем случае, если список синонимов управляется динамически, это означает, что вам следует переиндексировать каждый документ, содержащий термин, список синонимов которого был обновлен, чтобы оценка оставалась согласованной между документами, проанализированными до и после обновления. Я не говорю, что это невозможно, но требует некоторой работы и, вероятно, вызовет проблемы с производительностью у синонимов, которые часто встречаются в вашем индексе.