テストではElasticsearch重合時間は、エラーを報告しました。次のように:
GET / megacorp /従業員/ _search { "aggs" :{ "all_interests" :{ "用語":{ "フィールド": "利益" } } } }
エラーメッセージ
{ 「エラー」:{ 「ROOT_CAUSE」:[ { 「タイプ」:「illegal_argument_exception」、 「理由は」:「Fielddataはデフォルトでテキストフィールドで無効になっていることにより、メモリにfielddataロードするために[利益]に真= fielddata設定します。転置インデックスをuninverting。これはしかし、大量のメモリを使用できることに注意してください。また代わりに、キーワードフィールドを使用しています。」 } ]、 "タイプ": "search_phase_execution_exception" 、 "理由": "全破片が失敗しました" 、 "相": "クエリ"は、 "グループ化":真、 "インデックス": "megacorp" 、 "ノード": "wlvuJ0f_SsCxys6ZW5j7eA" 、 "理由" :{ "タイプ": "illegal_argument_exception" 、 "理由":「Fielddataは、デフォルトではテキストフィールドで無効になっている[利益にfielddata = trueを設定します。 ]転置インデックスをuninvertingことにより、メモリにfielddataロードするために。これはしかし、大量のメモリを使用できることに注意してください。また代わりに、キーワードフィールドを使用しています。」 } } ] }、 "ステータス":400 }
ソリューション:
1、ElasticSearch5.xのソリューションは、オープンfielddataです。
PUT / megacorp / _mapping / 従業員 { "プロパティ" :{ "利益" :{ "タイプ": "テキスト" 、 "fielddata":真 } } }
2、バージョンElasticSearch6.xまたは7.xのオープンfielddataとき:
PUT / megacorp / _mapping { "プロパティ" :{ "利益" :{ "タイプ": "テキスト" 、 "fielddata":真 } } }