10

サイズ制限のあるクエリの結果として返されるドキュメントの数をカウントしたい。たとえば、次のクエリを実行します。

curl -XGET http://localhost:9200/logs_-*/a_logs/_search?pretty=true -d '
{
"query" : {
    "match_all" : {  }
},
"size" : 5,
"from" : 8318
}'

そして私は得る:

{
"took" : 5,
"timed_out" : false,
"_shards" : {
"total" : 159,
"successful" : 159,
"failed" : 0
},
  "hits" : {
  "total" : 8319,
  "max_score" : 1.0,
  "hits" : [ {
....

クエリに一致するドキュメントの総数は 8319 ですが、最大 5 で取得しました。8318 からクエリを実行したため、返されたドキュメントは 1 つだけです。

応答では、返されたドキュメントの数がわかりません。返されるドキュメントの数が一部のフィールドにも存在するようなクエリを作成したいと考えています。多分いくつかの面が役立つかもしれませんが、私は理解できませんでした. 親切に助けてください。

4

2 に答える 2

9

あなたのクエリ:

{
"query" : {
    "match_all" : {  }
},

=>すべてのデータを尋ねることを意味します

"サイズ" : 5,

=> 5 つの結果のみを表示したい

「から」: 8318

=> 8318 レコードから開始します

エラスティックサーチの応答:

....

"hits" : {
  "total" : 8319,

... => エラスティック サーチは、インデックスに 8319 件の結果があることを示しました。

彼にすべての結果を尋ね、8318 から始めます。

8319 - 8318 = 1 したがって、1 つの結果が得られます。

from を削除してみてください。

于 2013-11-06T07:02:39.767 に答える
1

ドキュメントを見ると、クエリがこれを返すようにする方法が明確ではありません-実際にAPIがサポートしている場合。返されたヒットの数を知りたいだけの場合、最も簡単な方法は、応答を解析した後に実際に自分で数えることです。

于 2013-05-15T13:42:53.650 に答える