У меня есть настройка solrcloud с несколькими коллекциями, основанными на одном и том же наборе настроек.
Одна из функций, которые у меня есть, заключается в том, что пользователь может определять свои собственные синонимы, чтобы улучшить свой опыт поиска, который работал нормально досейчас.Для этого я использую собственный способ, который в основном заканчивает запись нового synonyms.txt в Zookeeper.
В последнее время платформа выросла, и у пользователя есть несколько десятков коллекций, из которых должно быть 200 тыс. Или более документов не- тривиальный размер.
Проблема в том, что когда пользователь меняет синонимы, пользовательский код в системе автоматически запускает последовательную перезагрузку всех коллекций, на которые повлияло изменение синонимов.Это сейчас (Solr 5.2) всегда вызывает проблемы, до такой степени, что платформа становится нестабильной и может нуждаться в перезапуске Solr, что означает, что мы должны получить доступ к платформе и вручную стабилизировать ее.На данный момент мне пришлось отключить перезагрузку коллекций, чтобы избежать зависания Solr.
Я обновился до Solr 7.6, надеясь, что изменения с 5.2 помогут решить эту проблему.
Синонимыиспользуется только во время запроса, поэтому нет необходимости переиндексировать что-либо, и кажется, что перезагружать коллекцию, чтобы новые синонимы вступили в силу.
Зная, что во время индекса я не буду использовать синонимы, я попыталсясоздание QueryTimeSynonymGraphFilterFactory, которое перезагружает синонимы каждые N секунд, и это не совсем работает, так как поиск только иногда применяет новые синонимы.Я чувствую, что, возможно, есть несколько искателей, и я смог изменить словарь только для одного из них.В среднем, кажется, что каждый четвертый поиск использует новые синонимы.
Есть ли способ иметь SynonymMap, который используется глобально?Есть ли способ заставить "искателей" воссоздать?