У меня в базе данных Marklogic около 20 lacs-документов. Я хочу, чтобы общее количество документов в моем поисковом приложении было разбито на страницы. Для получения итогов я использую
xdmp:estimate(cts:search(doc(), $query))
где $ query - это комбинация различных запросов, объединенных в cts:and-query
. Но я не получаю правильную сумму. Если $ query пусто, он показывает гораздо большее количество документов, чем общее количество документов в базе данных. Когда я использую
xdmp:estimate(doc())
он показывает мне правильную сумму, но это будет статическая сумма, которая не изменится в соответствии с запросом. Мне нужна сумма в соответствии с результатами, возвращенными в ответ на конкретный запрос, поэтому я передал $ query в качестве аргумента, но он не показывает правильную сумму. fn:count()
показывает правильное общее количество, но когда количество документов составляет около 20 лаковых пакетов, fn:count()
не работает, потому что fn:count()
медленнее, чем xdmp:estimate()
.
Пожалуйста, помогите мне получить правильное общее количество документов, возвращенных в ответ на поисковый запрос, введенный пользователем.