REST API поиска SharePoint возвращает несогласованное общее количество строк

Мы создаем пользовательскую веб-часть с функцией разбиения на страницы. Чтобы реализовать эту функцию, мы получаем общее количество строк и показываем возможное количество страниц.

При реализации этого мы запускаем запросы, используя параметры строки запроса startRow и rowLimit. Когда я изменяю параметр строки запроса startRow, атрибут TotalRows возвращает другое число для одного и того же queryText.

Example:
https://tenant.sharepoint.com/_api/search/query?querytext='test'&startrow=0&rowLimit=10 returns TotalRows 125
https://tenant.sharepoint.com/_api/search/query?querytext='test'&startrow=10&rowLimit=10 returns TotalRows 112

Но свойство TotalRowsInclusingDuplicates возвращает согласованное значение. Однако, если я попытаюсь использовать начальную строку выше счетчика TotalRows, он вернет 0 результатов.

Мне интересно, почему количество строк зависит от StartRow.

Кто-нибудь сталкивается с той же проблемой или есть какие-либо предложения?


person Venkat Konjeti    schedule 27.09.2019    source источник


Ответы (2)


То же самое происходит и при поиске в браузере. Внизу первой страницы результатов вы можете увидеть 746, на следующей странице 698 и 752. Все они приблизительные. Как правило, они приближаются к правильному значению по мере приближения к последней странице результатов.

т. е. SharePoint даже не пытается угадать количество страниц поиска.

Это из моего курса по поиску в SharePoint...

введите здесь описание изображения

person Mike Smith - MCT - MVP    schedule 02.10.2019

Для тех, кто ищет, как решить проблему -

Проблема возникает только тогда, когда обрезка дубликатов включена Вкл. Чтобы решить эту проблему, попробуйте отключить обрезку дубликатов.

Если вы используете Rest для получения результатов поиска, добавьте &trimduplicates=false В других случаях эта статья может помочь.

person Raf    schedule 16.09.2020