Используйте 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