2016-10-28 8 views
0

ES-2.4.0インデックスJSON

{ "_id": 1, "name": "Longsword", "description": "The Longsword can be wielded in one or two hands", "category": "Sharp" }弾性検索インデックスマッピングupdation

1.Iは、インデックスを作成し、デフォルトのマッピングが作成されています。
2.ここで提案するようにマッピングを更新しようとしています。

リンク:https://gist.github.com/nicolashery/6317643

点1について:私は任意のアナライザを使用していません。
についてポイント2:私はアナライザー "not_analysed"を使用しています。

しかし、動作しません。

質問:マッピングを更新する方法がない場合、ES-2.Xは更新機能をマッピングしていませんか?

注:私はこのエラーを取得していますしようとしている間

{ "エラー":{ "ROOT_CAUSE":[ { "タイプ": "illegal_argument_exception"、 "理由": " [名前]のマッパーが他のタイプの既存のマッピングと競合しています:\ n [マッパー[名前]が異なる[アナライザ]]「 」 ] 「タイプ」「illegal_argument_exception」 「理由」「Mapper for [名前]は他のタイプの既存のマッピングと競合します:\ n [マッパー[名]は異なる[分析]」 }、 "ステータス" を有する:400 }

答えて

2

をなし、既存のフィールドの変更マッピングタイプはES 2.xの以降許可されていません。

一般にdocumentation

から、既存のフィールドのマッピングはを更新することはできません。そこには がいくつかあります。たとえば、

  • オブジェクトデータ型フィールドに新しいプロパティを追加できます。
  • 新しい複数のフィールドを既存のフィールドに追加することができます。
  • doc_valuesは無効にすることはできますが、有効にすることはできません。
  • ignore_aboveパラメータを更新できます。

最初delete the indexに持っていて、新しいマッピングで新しいものを作成します。また、マイナーなタイプミスがあります。not_analyzed( "z" not "s")

+0

オススメです。それは 'z'です。 – shaun