Solr: перезагрузка синонимов времени запроса без перезагрузки коллекций - PullRequest
0 голосов
/ 29 декабря 2018

У меня есть настройка solrcloud с несколькими коллекциями, основанными на одном и том же наборе настроек.

Одна из функций, которые у меня есть, заключается в том, что пользователь может определять свои собственные синонимы, чтобы улучшить свой опыт поиска, который работал нормально досейчас.Для этого я использую собственный способ, который в основном заканчивает запись нового synonyms.txt в Zookeeper.

В последнее время платформа выросла, и у пользователя есть несколько десятков коллекций, из которых должно быть 200 тыс. Или более документов не- тривиальный размер.

Проблема в том, что когда пользователь меняет синонимы, пользовательский код в системе автоматически запускает последовательную перезагрузку всех коллекций, на которые повлияло изменение синонимов.Это сейчас (Solr 5.2) всегда вызывает проблемы, до такой степени, что платформа становится нестабильной и может нуждаться в перезапуске Solr, что означает, что мы должны получить доступ к платформе и вручную стабилизировать ее.На данный момент мне пришлось отключить перезагрузку коллекций, чтобы избежать зависания Solr.

Я обновился до Solr 7.6, надеясь, что изменения с 5.2 помогут решить эту проблему.

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

Зная, что во время индекса я не буду использовать синонимы, я попыталсясоздание QueryTimeSynonymGraphFilterFactory, которое перезагружает синонимы каждые N секунд, и это не совсем работает, так как поиск только иногда применяет новые синонимы.Я чувствую, что, возможно, есть несколько искателей, и я смог изменить словарь только для одного из них.В среднем, кажется, что каждый четвертый поиск использует новые синонимы.

Есть ли способ иметь SynonymMap, который используется глобально?Есть ли способ заставить "искателей" воссоздать?

...