Самый простой подход - создать индекс диапазона пути на /testData/datatypes/datatypename
и использовать запрос диапазона пути:
cts:path-range-query("/testData/datatypes/datatypename", "=", "datatypename1")
Альтернативой является использование запроса значений в запросах элемента области видимости:
cts:element-query(xs:QName("testData"),
cts:element-query(xs:QName("datatypes"),
cts:element-value-query(xs:QName("datatypename"), "datatypename1")))
Этот подход более восприимчив к ложным срабатываниям.Для небольших наборов результатов-кандидатов такие ложные срабатывания могут быть уменьшены путем фильтрации.
Для больших наборов результатов-кандидатов позиционные ложные срабатывания (например, документ с testData/datatypes
и datatypes/datatypename
, но не testData/datatypes/datatypename
) могут быть устранены путем индексации позиций элементов.Если пунктуация является отличительной для совпадения, токенизация значения также приведет к ложным срабатываниям.В таких случаях индексы диапазона пути являются правильным решением для больших наборов результатов кандидатов.