web-dev-qa-db-ja.com

同じインデックスelasticsearchとKibanaに2つのタイプを作成することはできません

Elasticsearchとkibanaが初めてです

Elasticsearchでいくつかのエクササイズを行っています(インデックス、タイプ、ドキュメントを作成します。)

タイプ「建物」でインデックス「ビジネス」を作成しました

put /business/building/217
{
  "adresse":"11 Pen Ave",
  "floors":5,
  "offices":7,
  "loc":{
    "lat":40.693479,
    "lon":-73.983854
  }
}

それは面白いですが、私がこのような別のタイプを作成しようとしたとき

put /business/employee/330
{
  "name":"Richard Bell",
  "title":"Senior Accountant",
  "salar_usd":115000.00,
  "hiredate":"Jan 19, 2013"
}

その後、私はこのエラーを受け取りました

{
  "error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Rejecting mapping update to [business] as the final mapping would have more than 1 type: [employee, building]"
      }
    ],
    "type": "illegal_argument_exception",
    "reason": "Rejecting mapping update to [business] as the final mapping would have more than 1 type: [employee, building]"
  },
  "status": 400
}
22
YK mar

Elasticsearchバージョン6を実行している可能性があり、そのバージョンESでは、特定のインデックスで 複数のタイプ を作成できません。

各ドキュメントタイプを専用のインデックス内に保存する必要があります。

PUT /business/building/217
{
  "adresse":"11 Pen Ave",
  "floors":5,
  "offices":7,
  "loc":{
    "lat":40.693479,
    "lon":-73.983854
  }
}

PUT /employees/employee/330
{
  "name":"Richard Bell",
  "title":"Senior Accountant",
  "salar_usd":115000.00,
  "hiredate":"Jan 19, 2013"
}
40
Val

https://www.elastic.co/guide/en/elasticsearch/reference/6.2/removal-of-types.html を参照してください。

Elasticsearch 6.x6.xで作成されたインデックスは、インデックスごとに単一タイプのみを許可します。タイプには任意の名前を使用できますが、存在できるのは1つだけです。優先される型名は_docであるため、インデックスAPIのパスは7.0と同じです。PUT{index}/_ doc/{id}およびPOST {index}/_ doc

1
Richard