Вы правы, проблема заключается в вычислении среднего значения:
res.add("mean", new Date(sum / count));
sum
и count
равны long
.Когда count
равен нулю, конечно, вы получите ArithmeticException
.Вы фактически делаете статистику в поле даты, которое никогда не имеет значения в вашем индексе.Самый простой обходной путь - создание статистики по полю, которое имеет хотя бы одно значение, поэтому переменная count
будет больше нуля, разделение будет работать, и статистика будет еще более значимой.
Вы не получите ту же ошибку с той же ситуацией, используя числовое поле, потому что в этом случае переменная суммы равна double
, таким образом, деление не вызывает ошибку, и результат равен NaN
.Фактически, существуют различные реализации StatsValues
, основанные на типе поля.
ОБНОВЛЕНИЕ
Я открыл проблему SOLR-3160 jira и предоставилпатч, который только что был зафиксирован.Следующая версия Solr будет содержать исправление!