1. ホーム
  2. elasticsearch

Elasticsearchを使った文書数のカウントについて

2023-10-21 15:23:39

質問

Elasticsearchの)インデックス内のドキュメント数をカウントしたい場合、(少なくとも)2つの可能性があります。

  • ダイレクト count

    POST my_index/_count

    にある文書の数を返さなければなりません。 my_index .

  • 使用方法 search

    ここでは countsearch_type または他のタイプとして使用することができます。どちらの場合でも、総カウントはフィールド ['hits']['total']

私の質問です。

  • 異なるアプローチの違いは何ですか?どちらを を選ぶべきでしょうか?

  • 私がこの質問をするのは、選択した方法によって異なる結果を経験しているからです。 この質問を提起するのは、選択した方法によって異なる結果を経験しているからです。私は今、この問題をデバッグしている最中です。 この質問が飛び込んできました。

どのように解決するのですか?

おそらく _count の方が少し速いでしょう。なぜなら、ランキングや結果フェッチを含む完全なクエリを実行する必要がなく、単にサイズを返すだけでよいからです。

しかし、どのようにして異なる結果を得ることができるのか、もう少し詳しく知ることは興味深いことです。そのためには、どのような正確なクエリを送信しているか、インデックスで何らかのインデックス作成が行われているかなどの詳細な情報が必要です。

しかし、次のようなことをするとします。

  1. いくつかのドキュメントのインデックスを作成する
  2. インデックスを更新する

_search そして _count (すべて一致のクエリで) は同じ合計を返すはずです。そうでない場合、それは非常に奇妙なことです。