Как сделать выборочную сортировку по атрибуту на основе связанного значения элемента или другого атрибута в MarkLogic - PullRequest
0 голосов
/ 15 марта 2019

Требование:

  1. Разрешить напрямую через индекс, не хотят открывать документы (следовательно, не учитывая выражение FLOWR).

  2. Результаты поиска возвращают список документов заказа на покупку

  3. Заказ на поставку может иметь или не иметь отдельную позицию (в целях примера)

  4. Для заказа на покупку могут быть тысячи позиций, каждая с различным типом
  5. Для типа будет только 1 позиция (без дубликатов в заказе на покупку)
  6. Для сортировки: Основано на одном из множества типов, выбранных пользователем во время поиска (иногда стул, иногда лампа и т. Д.) Порядок сортировки на основе суммы только для этого конкретного типа (например, стул)

Образец документа 1:

<purchase-order>
  <line-items>
    <line-item type="lamp"  amount="3500"></line-item>
    <line-item type="couch"  amount="50000"></line-item>
    <line-item type="chair"  amount="40000"></line-item>
  </line-items>
 <other-stuff></other-stuff>
</purchase-order>


Sample document 2:

<purchase-order>
  <line-items>
  <line-item type="couch"  amount="10000"> </line-item>
  <line-item type="chair"  amount="80000"></line-item>
 </line-items>
 <other-stuff></other-stuff>
</purchase-order>   

Последовательность ожидаемого результата:

  • Запрос на сортировку документа по сумме desc для типа стул должен возвращать последовательность документов 2 и 1
  • Запрос на сортировку документа по сумме desc для типа couch должен возвращать последовательность документов 1 и 2
...