1. ホーム
  2. elasticsearch

[解決済み] ElasticSearchのキーワードフィールドの「Fielddata is disabled on text fields by default」を修正する方法

2022-02-26 04:49:27

質問

キーワードフィールドで、「"Fielddata is disabled on text fields by default"」と表示されるのですが。以下はそのコードです。

{
 "aggs": {
   "agg_terms_user": {
     "terms": {
       "field": "user"
     }
   }
 }
}

のマッピングは ユーザー フィールドは次のとおりです。

user: { type: "keyword" }

ユーザー・フィールドのタイプはキーワードとして設定されているので、このエラーは発生しないはずです。しかし、エラーはまだ投げられています。

[illegal_argument_exception] テキストフィールドのフィールドデータはデフォルトで無効になっています。user]にfielddata=trueを設定すると、転置インデックスを非反転にしてfielddataをメモリ上にロードすることができます。しかし、この場合、かなりのメモリを消費することになります。代わりに、キーワードフィールドを使用することもできます。

今、何を試せばいいのかわからない。

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

予期せぬエラーの原因がわかりました。ESの再インデックス化がうまくいっていなかったのです。最初にインデックスを削除して、再作成したら、魅力的に動作するようになりました。