2017-10-12 26 views
1

現在、私は紺色の検索のためにAPIを呼び出す必要があるアプリケーションを作成しています。このAPIを呼び出す:紺碧の検索結果を得るには?

https://<searchServiceName>.search.windows.net/indexes/<index-name>/docs/search?api-version=2016-09-01 

はまた、検索クエリに必要なパラメータをすべて提供:

(test||test||test||test||test||test||test)+ Contacts+Campaigns+Companies+Targets+Complanits+Claims+Activities+Opportunities+Completed Activities 

問題は、この特定の検索に関連したテーブル内の合計1127行があります。しかし、私はJSONオブジェクトの出力に続いて最初の50個を取得します。

"@search.nextPageParameters": { 
     "search": "(test||test||test||test||test||test||test)+ Contacts+Campaigns+Companies+Targets+Complanits+Claims+Activities+Opportunities+Completed Activities", 
     "skip": 50} 

1127以上の結果を得るために、どのような変更を行うべきですか?

答えて

4

これは予想される動作です。 documentationから(ドキュメントに関する$topクエリパラメータを参照してください):

$トップ=#(オプション)

検索結果の数を取得します。 デフォルトは50です。 POST経由で呼び出す場合、このパラメータの名前は$ topではなくtopです。 の値を1000より大きく、1000より大きい値を指定した場合は、結果の次のページへのリンク と一緒に最初の1000の結果だけが返されます( の例の@ odata.nextLinkを参照してください)。 )。

Azure Searchは、サーバー側のページングを使用して、 からのクエリが一度に多くのドキュメントを取得しないようにします。デフォルトのページサイズは50、 ですが、最大ページサイズは1000です。つまり、デフォルトで検索します。 $ topを指定しないと、ドキュメントは最大50の結果を返します。 結果が50を超える場合、応答には、 に次のページを最大50個の結果で取得する情報が含まれています(下記の例では、@ odata.nextLinkおよび @ search.nextPageParametersを参照してください)。 $トップ1000より以上 千結果があるが、最初の1000の結果は、せいぜい千の結果の次のページを取得するために 情報とともに、返される。

これに基づき、あります

  1. $topパラメータの値を指定します。値を指定していないので、デフォルトのレコード数(50)が返されます。
  2. 単一の要求で最大1000のレコードしかフェッチできないため、インデックスに1000を超えるレコードが含まれていると述べたため、ページングされた結果をフェッチするために複数のクエリを発行する必要があります。
+0

こんにちは、返信ありがとうございます。同じ操作で別の問題があります。ご覧ください:https://stackoverflow.com/questions/46714067/how-to-get-a-link-to-fetch-next-records-from-azure-search –

関連する問題