Как вычислить сумму значения для поля, используя интервалы различных полей в Solr? - PullRequest
0 голосов
/ 03 июля 2019

У меня есть несколько документов solr в следующей форме

{запросы: [23], отметка времени: [1562146437780]}

мне нужно получитьсумма запросов в интервалах метки времени.

Я пытался использовать фасеты, но не мог понять, как использовать два поля

Я попробовал это.но подсчитывал документы за интервал времени.

 query.addNumericRangeFacet(TIMESTAMP, startTime, endTime, gap);

Заранее спасибо

1 Ответ

0 голосов
/ 03 июля 2019

Это можно реализовать с помощью API-интерфейса фасетов JSON для фасетов диапазона .Это позволит вам указать подфасет, который работает с доменом (т. Е. Документы в корзине), с фасета выше.

Вы начинаете с создания фасета диапазона:

RangeFacetMap rangeFacet = new RangeFacetMap(TIMESTAMP, startTime, endTime, gap);

Затем вы добавляете подфасет, который вызывает сумму:

rangeFacet.withStatSubFacet("requests_sum", "sum(requests)")

Вы отправляете этот запрос в Solr, используя:

final JsonQueryRequest request = new JsonQueryRequest()
    .setQuery("*:*")
    .withFacet("timestamps", rangeFacet);
QueryResponse queryResponse = request.process(solrClient, COLLECTION_NAME);

У меня нет экземпляра или документов для тестирования спрямо сейчас, но это основано на информации в Nester Facet Example в справочном руководстве.

...