Я пытаюсь установить уровень Marklogic 9 с помощью политики назначения запросов.Я создал 2 уровня (как разделы) в базе данных «Документы» с именами разделов:
- Part1, номер раздела 1, Раздел по умолчанию (без назначенного запроса)
- Part2, разделномер 2
В базе данных документы хранятся в формате JSON, и я хочу распределить их в соответствии со свойством документов "DYil".
Пример документа JSON, существующего в db:
{
"Yerlesim": "Izmir",
"Ad": "AAA",
"@timestamp": "2018-06-02T21:16:23.647Z",
"SoyAd": "BBB",
"@version": "1",
"DYil": "2010-01-01",
"host": "dhcppc6",
"Yas": 8,
"type": "testA",
}
Конфигурирование базы данных выполняется в соответствии с документацией Marklogic, следуя этим инструкциям:
Политика назначения как запрос
Строгая блокировка
DYil индекс как дата
Назначенный запрос для раздела Part2:
<partition-query-properties xmlns="http://marklogic.com/manage/partition-query/properties">
<partition-number>2</partition-number>
<query>
<cts:json-property-range-query operator="<" xmlns:cts="http://marklogic.com/cts">
<cts:property>DYil</cts:property>
<cts:value xsi:type="xs:date" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">1960-01-01</cts:value>
</cts:json-property-range-query>
</query>
</partition-query-properties>
Iможно увидеть, что запрос правильно назначен разделу через rest api, вызвав http://localhost:8002/manage/v2/databases/Documents/partition-queries
Но когда я загружаю данные в Marklogic, все данные загружаются в раздел по умолчанию и остаются там, даже если я заставляю rebalancer работать.
Запрос консоли Xquery:
cts:search(fn:collection(), cts:json-property-range-query("DYil", "<", xs:date("1960-01-01")), (), (), ts:partition-forests(xdmp:database("Documents"),"Part1"))
Я преобразовал cts: выражение запроса cts:json-property-range-query("DYil", "<", xs:date("1960-01-01"))
в формат XML с использованием кода <root>{cts:json-property-range-query("DYil", "<", xs:date("1960-01-01"))}</root>/node()
, как предложено на сайте Marklogic.
В журналах ошибок нет записи журнала, поэтому я подозреваю, чтосуществует проблема с назначенным запросом, но она не может найти проблему.