Результаты поиска Rest API не совпадают с результатами, возвращаемыми страницей поиска. - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть API отдыха поиска, когда я запускаю его через конструктор точки обмена, я не получаю тот же номер, если результаты возвращены страницей поиска на сайте точки обмена, я пытался использовать разные исходные идентификаторы, а также пытался использовать идентификатор источника по умолчанию из источника результатов, но я всегда получаю одинаковые результаты, поэтому я не уверен, что я делаю неправильно. Моя другая мысль: есть ли способ получить все результаты из функции поиска по умолчанию, встроенной в Share-point?

 var ct = new SP.ClientContext.get_current();
 var keywordQuery = new Microsoft.SharePoint.Client.Search.Query.KeywordQuery(ct);

 var queryStr = ctx.DataProvider.get_currentQueryState().k;
 keywordQuery.set_queryText(queryStr);


 keywordQuery.set_trimDuplicates(false);  
 keywordQuery.set_enableSorting(true);                                  
 keywordQuery.set_sourceId=("xxxxxx-xxxx-xxxx-xxx-xxxxxxx");  
 keywordQuery.set_rowLimit(500);


 keywordQuery.set_trimDuplicates(false);

 var searchExecutor = new Microsoft.SharePoint.Client.Search.Query.SearchExecutor(ct);
 var results = searchExecutor.executeQuery(keywordQuery);


   ct.executeQueryAsync(onQuerySuccess, onQueryFail);

   function onQuerySuccess() 
      {
      results.m_value.ResultTables[1].ResultRows.forEach(function (row)
      {
       var Aname1 = row.name;
       console.log(row);
                if (!$isNull(Aname1))

           {

           var name= Aname1;
               console.log(name);

           }


      });



      }



       function onQueryFail() 
       {

       }

1 Ответ

0 голосов
/ 08 ноября 2018

Обычно результаты разбиваются на страницы. Это означает, что вместо того, чтобы возвращать все результаты сразу, они делятся на части и каждая часть (страница) отправляется один раз.

Например, при поиске на google.com вместо того, чтобы возвращать все 1,50000000 .... результатов, Google возвращает только 10 результатов или около того. Чтобы получить следующие 10 результатов, вы нажимаете следующую кнопку в меню нумерации страниц внизу страницы.

Это сделано для того, чтобы API и сеть не перегружались. Представьте себе, насколько большим будет ответ с 1,500,000 записей.

Это то, что происходит с тобой. В ответе, который вы получили, посмотрите, есть ли запись с URL для следующей страницы, Microsoft обычно так поступает. Если вы позвоните по этому URL, вы получите следующую страницу. Если это не так, посмотрите, есть ли у названного вами URL где-то параметр, где вы можете выбрать страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...