Solr / Lucene fieldCache Сортировка ошибок OutOfMemory на динамическом поле

У нас есть ядро Solr, которое имеет около 250TrieIntFields (объявлен какdynamicField). В нашем индексе Solr содержится около 14 миллионов документов, и многие документы имеют определенную ценность во многих из этих полей. Нам необходимо отсортировать все эти 250 полей за определенный период времени.

Проблема, с которой мы сталкиваемся, заключается в том, чтоfieldCache заполняется очень быстро. У нас есть коробка 4 ГБ, а размер индекса составляет 18 ГБ. После сортировки по 40 или 45 из этих динамических полей потребление памяти составляет около 90%, и мы начинаем получать ошибки OutOfMemory.

На данный момент у нас есть задание cron, которое запускается каждую минуту, перезапуская tomcat, если общее потребление памяти превышает 80%.

Из того, что я прочитал, я понимаю, что ограничение числа различных значений в сортируемых полях Solr приведет к снижениюfieldCache пространство. Значения в этих сортируемых полях могут быть любыми целыми числами от 0 до 33000 и довольно широко распределены. У нас есть несколько масштабных решений, но как лучше всего решить эту проблему?

ОБНОВЛЕНИЕ: Мы думали, вместо сортировки, если мы сделали повышение, выиграл 'зайти в fieldCache. Таким образом, вместо выдачи запроса, как

select?q=name:alba&sort=relevance_11 desc

мы попытались

select?q={!boost relevance_11}name:alba

но, к сожалению, повышение также заполняет кэш поля :(

Ответы на вопрос(2)

Ваш ответ на вопрос