Я новичок в Solr, и я заинтересован в реализации специального аспекта.
Примеры документов:
{ hostname: google.com, time_spent: 100 }
{ hostname: facebook.com, time_spent: 10 }
{ hostname: google.com, time_spent: 30 }
{ hostname: reddit.com, time_spent: 20 }
...
Я хотел бы вернуть фасет со следующей структурой:
{ google.com: 130, reddit.com: 20, facebook.com: 10 }
Хотя значения возвращаемых значений solr гораздо более подробные, важно отметить, что "counts" для граней - это сумма значений time_spent для документов, а не фактическое количество документов, соответствующих фасете.
Идея № 1:
Я мог бы использовать стержень:
q:*:*
&facet=true
&facet.pivot=hostname,time_spent
Тем не менее, это возвращает подсчеты всех уникальных затраченных временем значений для каждого уникального имени хоста. Я мог бы суммировать это в своем приложении вручную, но это кажется расточительным.
Идея № 2
Я мог бы использовать модуль статистики:
q:*:*
&stats=true
&stats.field=time_spent
&stats.facet=hostname
Однако это имеет две проблемы. Во-первых, возвращаемые результаты содержат все имена хостов. Это действительно проблематично, так как у моего набора данных есть более 1 м имен хостов. Кроме того, возвращаемые результаты не сортируются - мне нужно отобразить имена хостов в порядке убывания общего времени.
Ваша помощь в этом была бы очень оценена!
Спасибо!