Я новичок в Solr и у меня есть следующая проблема:Solr запрос: SQL-подобный JOIN, GROUP BY, SUM(), где SUM()
У меня есть эти документы:
категории: контракт:
{
"contract_id_s": "contract-ENG-00001",
"title_s": "contract title",
"ref_easy_s": "REFAAA",
"commitment_id_s": "ENG-00001",
},
категория: обязательство:
{
"commitment_id_s": "ENG-00001",
"title_s": "commitment title",
"status_s": "Validated",
"date_changed_status_s": "2015-09-30",
"date_status_initiated_s": "2015-09-27",
"date_status_confirmed_s": "2015-09-28",
"date_status_validated_s": "2015-09-30",
},
категория: приверженность И sub_category_s: commitment_project:
{
"id": "ENG-00001_AAA",
"commitment_id_s": "ENG-00001",
"project_id_s": "AAA",
"project_name_s": "project name",
"project_amount_asked_s": "2000",
"project_amount_validated_s": "2100"
},
{
"id": "ENG-00001_AAA2",
"commitment_id_s": "ENG-00001",
"project_id_s": "AAA",
"project_name_s": "project name",
"project_amount_asked_s": "1000",
"project_amount_validated_s": "1200"
},
Для каждого обязательства может существовать договор. Для каждого обязательства могут быть некоторые платежи.
Вот что я хочу сделать: - по умолчанию выберите только обязательство, которое имеет не менее: . один sub_category_s: objective_project с значением project_amount_validated_s. . один контракт. - если отфильтровано по суммам, выберите только этот список, обязательства с SUM проекта_amount_validated_s> amount_min И < amount_max.
Я не знаю, какова наилучшая практика с точки зрения производительности? - Запрос идентификаторов обязательств, запрашивающих детали для них? - Есть ли способ присоединиться к информации о контракте в этом запросе? - Или лучше всего запросить каждый документ по одному?
Проблема в том, что я не хочу запрашивать бесполезные данные (производительность, пропускная способность).
Спасибо большое, я посмотрю на него в четверг! – Quezako