SharePoint Search REST Api を使用しているときに、次の問題が発生しました。異なるrowlimit
値を使用すると、totalrows
プロパティの値が変化します。たとえば、次のようなリクエストの場合:
http://my-site/_api/search/query?querytext='test'&rowlimit=10
私は次の応答を得ました:
<d:RowCount m:type="Edm.Int32">10</d:RowCount>
<d:Table m:type="SP.SimpleDataTable"></d:Table>
<d:TotalRows m:type="Edm.Int32">22</d:TotalRows>
一方、このリクエストhttp://my-site/_api/search/query?querytext='test'&rowlimit=5
で私はこれを取得します:
<d:RowCount m:type="Edm.Int32">5</d:RowCount>
<d:Table m:type="SP.SimpleDataTable"></d:Table>
<d:TotalRows m:type="Edm.Int32">28</d:TotalRows>
CSOM Api で確認したところ、REST と同じ値が返されました。
using (var clientContext = new ClientContext(_url))
{
var keywordQuery = new KeywordQuery(clientContext)
{
QueryText = "test",
RowLimit = 10 //and then 5
};
var searchExecutor = new SearchExecutor(clientContext);
var results = searchExecutor.ExecuteQuery(keywordQuery);
clientContext.ExecuteQuery();
Console.WriteLine("total rows: {0}", results.Value[0].TotalRows); // 22 and then 28
}
なぜそうなるのか、どうすればこの問題を解決できますか?