Как сохранить порядок релевантности 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 применяется к каждому элементу в последовательности отдельно.
НТН!