отдельные значения поля SOLR без подсчета - PullRequest
2 голосов
/ 14 июля 2010

Мой вопрос очень похож на этот вопрос
Разница в том, что мне нужен наименее интенсивный ОЗУ способ сбора информации о различных значениях.Я не забочусь о фактическом количестве в этом случае, я просто хочу узнать возможные значения для этого поля.
У меня постоянно заканчивается свободное пространство (более 30 миллионов документов), и должен быть какой-то способ /параметр для этого в режиме экономии памяти

Ответы [ 3 ]

1 голос
/ 14 июля 2010

Если количество различных значений велико, вам, вероятно, потребуется выполнить разбиение по страницам.Используйте параметры facet.offset и facet.limit.

1 голос
/ 03 ноября 2014

Используйте StatsComponenet, чтобы получить список различных значений для определенного поля: https://cwiki.apache.org/confluence/display/solr/The+Stats+Component

Параметр stats.calcdistinct:

Если true, будут вычислены различные значения ивозвращается как "countDistinct" и "DifferentValues" в ответе.Это вычисление может быть дорогим для некоторых полей, поэтому по умолчанию оно ложно.Если вы хотите вернуть только отдельные значения для определенных полей, вы также можете указать f..stats.calcdistinct, заменив его именем поля, чтобы ограничить вычисление различных значений требуемым полем.

Чтобы сохранить нагрузку, извлекайте ее как можно меньше раз, сохраняйте результаты в кеш-памяти и извлекайте их только после изменения данных.

Если ваш индекс в целом медленный, возможно, вы захотите взглянуть накэшировать конфигурацию и / или дать SOLR больше оперативной памяти (если у вас есть средства).

Первоначально ответили здесь (мной):

https://stackoverflow.com/a/26714447/621690

0 голосов
/ 14 июля 2010

Я не знаю об использовании оперативной памяти, но вы можете попробовать Свертывание полей Вы найдете патч для Solr здесь .

...