Как сохранить порядок релевантности cts: результаты поиска

У меня есть следующие коды:

1)

for $song in cts:search(fn:doc(), "night")
return $song/ts:top-song/ts:title/text() 

2)

cts:search(fn:doc(), "night")/ts:top-song/ts:title/text()

cts: поиск возвращает документы в соответствии с релевантностью. Оба кода возвращают результаты в другом порядке. Что вернет результат с правильной релевантностью и почему?

1 ответ

Решение

Первый.

Во втором случае XPath применяется ко всей последовательности, возвращаемой cts:search, но в соответствии со стандартом XPath результат этого переупорядочивается в порядке документов, что становится непредсказуемым, когда узлы в последовательности происходят из разных документов.

Первый применяет итерацию FLWOR к последовательности, которая обеспечивает сохранение порядка, а XPath применяется к каждому элементу в последовательности отдельно.

НТН!

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