Решите, как написать пользовательскую функцию агрегации / фасетную функцию - PullRequest
0 голосов
/ 23 апреля 2020

Возможно ли / как написать новую пользовательскую функцию фасета в Solr?

Я хочу написать несколько новых функций, которые выполняются для корзины фасетов и дают один результат, но не мог найти с чего начать. Одной из них является функция, которая просто возвращает произвольное значение из корзины без вычисления min / max / avg et c.

1 Ответ

1 голос
/ 23 апреля 2020

Хороший способ начать работу в этих случаях - это найти одну из существующих и более уникально названных функций, а затем искать их в базе кода.

Начиная с JSON API фасетов: Функции фасеток Stat * Я вижу пару хороших кандидатов, таких как percentile и sumsq (и несколько других).

Поиск в коде показывает, что агрегат процентилей реализован в solr/core/src/java/org/apache/solr/search/facet/PercentileAgg.java , как это видно на Github . Это кажется немного сложным, но каталог содержит все функции агрегирования фасетов.

Агрегатор дисперсии должен быть проще, , и действительно, это . Начиная с источника VarianceAgg, вы сможете создать другую версию, которая объединит все значения для указанного фасета c в одно значение.

Начните с расширения SimpleAggValueSource и продолжайте работать оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...