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"
}
}
Заранее спасибо!