カウントAPI
検索クエリの一致数を取得します。
Python
resp = client.count(
index="my-index-000001",
q="user:kimchy",
)
print(resp)
Ruby
response = client.count(
index: 'my-index-000001',
q: 'user:kimchy'
)
puts response
Js
const response = await client.count({
index: "my-index-000001",
q: "user:kimchy",
});
console.log(response);
コンソール
GET /my-index-000001/_count?q=user:kimchy
ボディに送信されるクエリは、検索APIと同様に、query
キー内にネストされている必要があります。
リクエスト
GET /<target>/_count
前提条件
- Elasticsearchのセキュリティ機能が有効になっている場合、ターゲットデータストリーム、インデックス、またはエイリアスに対して
read
インデックス権限を持っている必要があります。
説明
カウントAPIを使用すると、クエリを実行し、そのクエリに対する一致数を取得できます。クエリは、パラメータとして単純なクエリ文字列を使用して提供するか、リクエストボディ内で定義されたQuery DSLを使用して提供できます。
カウントAPIはmulti-target syntaxをサポートしています。複数のデータストリームとインデックスにわたって単一のカウントAPI検索を実行できます。
操作はすべてのシャードにブロードキャストされます。各シャードIDグループに対して、レプリカが選択され、それに対して実行されます。これは、レプリカがカウントのスケーラビリティを向上させることを意味します。
パスパラメータ
<target>
- (オプション、文字列)検索するデータストリーム、インデックス、およびエイリアスのカンマ区切りリスト。ワイルドカード(
*
)をサポートします。すべてのデータストリームとインデックスを検索するには、このパラメータを省略するか、*
または_all
を使用します。
クエリパラメータ
allow_no_indices
- (オプション、ブール値)
false
の場合、リクエストは、ワイルドカード式、インデックスエイリアスまたは_all
値が欠落または閉じたインデックスのみをターゲットにする場合にエラーを返します。この動作は、リクエストが他のオープンインデックスをターゲットにしている場合でも適用されます。たとえば、foo*,bar*
をターゲットにするリクエストは、foo
で始まるインデックスが存在するが、bar
で始まるインデックスが存在しない場合にエラーを返します。
デフォルトはtrue
です。 analyzer
- (オプション、文字列)クエリ文字列に使用するアナライザー。
このパラメータは、q
クエリ文字列パラメータが指定されている場合にのみ使用できます。 analyze_wildcard
- (オプション、ブール値)
true
の場合、ワイルドカードおよびプレフィックスクエリが分析されます。デフォルトはfalse
です。
このパラメータは、q
クエリ文字列パラメータが指定されている場合にのみ使用できます。 default_operator
- (オプション、文字列)クエリ文字列クエリのデフォルト演算子:ANDまたはOR。デフォルトは
OR
です。
このパラメータは、q
クエリ文字列パラメータが指定されている場合にのみ使用できます。 df
- (オプション、文字列)クエリ文字列にフィールドプレフィックスが指定されていない場合に使用するデフォルトのフィールド。
このパラメータは、q
クエリ文字列パラメータが指定されている場合にのみ使用できます。 expand_wildcards
- (オプション、文字列)ワイルドカードパターンが一致できるインデックスのタイプ。リクエストがデータストリームをターゲットにできる場合、この引数はワイルドカード式が隠しデータストリームに一致するかどうかを決定します。カンマ区切りの値をサポートします(
open,hidden
など)。有効な値は次のとおりです:all
- すべてのデータストリームまたはインデックスに一致します。隠しデータストリームを含みます[b10cb0563daae284.md#multi-hidden]。
open
- オープンで非隠しのインデックスに一致します。また、非隠しデータストリームにも一致します。
closed
- クローズドで非隠しのインデックスに一致します。また、非隠しデータストリームにも一致します。データストリームはクローズできません。
hidden
- 隠しデータストリームおよび隠しインデックスに一致します。
open
、closed
、またはその両方と組み合わせる必要があります。 none
- ワイルドカードパターンは受け入れられません。
デフォルトはopen
です。
ignore_throttled
- (オプション、ブール値)
true
の場合、具体的、拡張された、またはエイリアスされたインデックスは凍結時に無視されます。デフォルトはtrue
です。
[7.16.0] 7.16.0で非推奨。 ignore_unavailable
- (オプション、ブール値)
false
の場合、リクエストは欠落またはクローズされたインデックスをターゲットにする場合にエラーを返します。デフォルトはfalse
です。 lenient
- (オプション、ブール値)
true
の場合、クエリ文字列内の形式に基づくクエリ失敗(数値フィールドにテキストを提供するなど)は無視されます。デフォルトはfalse
です。
このパラメータは、q
クエリ文字列パラメータが指定されている場合にのみ使用できます。 min_score
- (オプション、浮動小数点数)結果に含めるためにドキュメントが持つ必要がある最小
_score
値を設定します。 preference
- (オプション、文字列)操作を実行するノードまたはシャードを指定します。デフォルトはランダムです。
q
- (オプション、文字列)Luceneクエリ文字列構文のクエリ。
routing
- (オプション、文字列)操作を特定のシャードにルーティングするために使用されるカスタム値。
terminate_after
- (オプション、整数)各シャードのために収集する最大ドキュメント数。クエリがこの制限に達すると、Elasticsearchはクエリを早期に終了します。Elasticsearchは、ソートの前にドキュメントを収集します。
注意して使用してください。Elasticsearchはこのパラメータをリクエストを処理する各シャードに適用します。可能な場合は、Elasticsearchに自動的に早期終了を行わせてください。複数のデータティアにわたるバックインデックスを持つデータストリームをターゲットにするリクエストに対してこのパラメータを指定することは避けてください。
リクエストボディ
例
Python
resp = client.index(
index="my-index-000001",
id="1",
refresh=True,
document={
"user.id": "kimchy"
},
)
print(resp)
resp1 = client.count(
index="my-index-000001",
q="user:kimchy",
)
print(resp1)
resp2 = client.count(
index="my-index-000001",
query={
"term": {
"user.id": "kimchy"
}
},
)
print(resp2)
Ruby
response = client.index(
index: 'my-index-000001',
id: 1,
refresh: true,
body: {
'user.id' => 'kimchy'
}
)
puts response
response = client.count(
index: 'my-index-000001',
q: 'user:kimchy'
)
puts response
response = client.count(
index: 'my-index-000001',
body: {
query: {
term: {
'user.id' => 'kimchy'
}
}
}
)
puts response
Js
const response = await client.index({
index: "my-index-000001",
id: 1,
refresh: "true",
document: {
"user.id": "kimchy",
},
});
console.log(response);
const response1 = await client.count({
index: "my-index-000001",
q: "user:kimchy",
});
console.log(response1);
const response2 = await client.count({
index: "my-index-000001",
query: {
term: {
"user.id": "kimchy",
},
},
});
console.log(response2);
コンソール
PUT /my-index-000001/_doc/1?refresh
{
"user.id": "kimchy"
}
GET /my-index-000001/_count?q=user:kimchy
GET /my-index-000001/_count
{
"query" : {
"term" : { "user.id" : "kimchy" }
}
}
上記の両方の例は同じことを行います:my-index-000001
のドキュメント数をuser.id
がkimchy
のものでカウントします。APIは次の応答を返します:
コンソール-結果
{
"count": 1,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
}
}
クエリはオプションであり、提供されない場合はmatch_all
を使用してすべてのドキュメントをカウントします。