1. ホーム
  2. elasticsearch

[解決済み] elasticsearchで個数ではなく、明確な値を検索する。

2022-02-19 10:21:46

質問

Elasticsearchのドキュメント を提案します。 * 彼らのコード片は

*ドキュメントを修正しました

GET /cars/transactions/_search?search_type=count
{
  "aggs": {
    "distinct_colors": {
      "cardinality": {
        "field": "color"
      }
    }
  }
}

SQLクエリに対応する

SELECT DISTINCT(color) FROM cars

に対応するものですが、実際には

SELECT COUNT(DISTINCT(color)) FROM cars

明確な値がいくつあるかではなく、明確な値が何であるかを知りたいのです。どなたか、その方法をご存じですか?

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

を使用します。 用語集計 を使用します。 color フィールドを使用します。つまり、インデックス作成時にトークン化していないことを確認する必要があります。そうしないと、集計のすべてのエントリが、フィールドコンテンツの一部である異なる用語になります。

それでもトークン化を行いたい場合、そして terms アグリゲーションは not_analyzed タイプのインデックスを作成し、そのフィールドに対して マルチフィールド .

自動車に関する用語集計。

GET /cars/transactions/_search?search_type=count
{
  "aggs": {
    "distinct_colors": {
      "terms": {
        "field": "color",
        "size": 1000
      }
    }
  }
}