У меня есть индекс, содержащий 1,2 миллиарда документов (Solr 1.4.1). Я хочу включить фасетную навигацию в поле (тип int), содержащее около 250 уникальных значений.
Я получаю Java heap space java.lang.OutOfMemoryError
с методом по умолчанию (facet.method = fc), в то время как метод enum очень медленный (но работает).
Каков наилучший подход для заданного количества документов и уникальных значений?
Обновлен:
Так что, если я правильно понимаю:
Использование памяти для огранки с использованием метода fc: MaxDoc * 4 байта (тип поля int, 64-битная JVM), т.е. 1118950216 * 4 байта = 4,1 ГБ (приблизительно)
Использование памяти для огранки с использованием метода enum: NumberOfUniqueValues * SizeOfBitset = 250 * (1118950216/8) = 32 ГБ
Это правильно?
Я снова попробую метод FC (и дам больше оперативной памяти к solr).
Спасибо!