Я создал простой индекс поля, который выглядит следующим образом:
- имя поля: root_test
- включает корень: false
- словарные лексики: http://marklogic.com/collation/de/S1
- настройки индекса: разрешен только поиск по словам
- Включенные элементы: элемент
content
Я создаю документ с элементом content
и двумя дочерними элементами-элементы header
и body
.Второй запрос использует индекс поля, чтобы найти все значения и проверить, содержит ли оно слово Body
.Как и ожидалось, это так.Затем я обновляю свой документ без элемента body
и снова запрашиваю слова индекса поля.Индекс поля по-прежнему содержит слово Body
.Это мой тестовый скрипт:
xquery version "1.0-ml";
xdmp:document-insert("test.xml",
<test>
<title>not found</title>
<content>
<header>Found</header>
<body>Body</body>
</content>
</test>
);
fn:exists(fn:index-of(
cts:field-words("root_test", (), ("collation=http://marklogic.com/collation/de/S1")),
"Body"
)) = fn:true();
xdmp:document-insert("test.xml",
<test>
<title>not found</title>
<content>
<header>Found</header>
</content>
</test>
);
fn:empty(fn:index-of(
cts:field-words("root_test", (), ("collation=http://marklogic.com/collation/de/S1")),
"Body"
)) = fn:true()
Я ожидал следующий вывод:
true
true
Но на самом деле я получаю:
true
false
Только если я выполнюпри ручном слиянии после обновления (вторая вставка) слово Body
удаляется из индекса поля.
Я что-то здесь не так делаю?Используя 9.0-8