Marklogic: как добавить RDF в cts.search

Чтобы определить проблему:

У меня есть два сборника документов, содержащих информацию о рабочих местах и ​​об отделах. Задания распределяются по отделам с использованием троек.

Задача состоит в том, чтобы иметь возможность осуществлять поиск по всем рабочим документам по их названию и идентификатору (информация содержится в рабочих документах) и по названию отдела (название отдела находится в документе отдела). Мне также нужно отсортировать ответ по одному из этих полей и разбить результаты по страницам. Сейчас я использую cts.search для поиска по идентификатору вакансии и названию и получения информации о своем отделе с помощью RDF (sem.sparql). Я тоже пользуюсь вторым cts.search для отделов, чтобы иметь возможность искать в коллекции отделов по названию отделов, а затем я получаю все задания, назначенные отделу, также с помощью RDF (sem.sparql). Я помещаю результаты этих поисков в один массив и избавляюсь от дубликатов. Проблема в том, что я не могу отсортировать окончательный массив, используя функции ML, и этот сервис работает медленно. Что вы могли бы посоветовать мне сделать в этом случае. Я уже несколько раз читал документацию по функциям и не нашел ничего полезного. Может быть, есть вариант, о котором я не знаю, который позволит мне поместить RDF внутрь ctd.search или запрашивать и извлекать работу, одновременно ища в отделах.

Есть примеры структур документа:

Работа, вакансии:

{
"id": 360, 
"title": "Department director", 
"TextId": "JOB-360"
}

Департамент:

{
"id": "DEP-95", 
"name": "The sampe department", 
"hasChlidren": true
}

Тройной соединяющий их:

 {
"triple": {
"subject": "https://pp.axes.pro/job/16120975269460184429.json", 
"predicate": "https://pp.axes.pro/jobIsAssignedToDepartment", 
"object": "https://pp.axes.pro/department/12962296203689002391.json"
}
}

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

0 ответов

Другие вопросы по тегам