背景ノート
実行「Elasticsearch Definitive Guideの」の例としては、および集計クエリの実装では、エラー Fielddataは、デフォルトではテキストフィールドで無効になっています 。
次のように1)重合文は次のとおりです。
_searchをGET
{
"aggs" :{
"all_interests" :{
"用語":{ "フィールド": "利益" } } } }
次のように2)の情報を与えられました。
{
「エラー」:{
「ROOT_CAUSE」:[
{
「タイプ」:「illegal_argument_exception」、 「理由は」: " Fielddataはデフォルトでテキストフィールドで無効になっている。で、メモリにfielddataロードするために[利益]に真= fielddata設定します転置インデックスをuninverting。これはしかし、大量のメモリを使用できることに注意してください。また代わりに、キーワードフィールドを使用しています。」 } ]、 "タイプ": "search_phase_execution_exception" 、"理由": "全破片が失敗しました" 、 "相": "クエリ" 、 "グループ化":真、 "failed_shards" 。、「理由」:{「タイプ」:「illegal_argument_exception」、「理由」:「Fielddataはデフォルトでテキストフィールドで無効になっているが、逆索引をuninvertingことにより、メモリにfielddataロードするために[利益]の真= fielddataを設定します注。これはしかし、大量のメモリを使用することができます。また代わりに、キーワードフィールドを使用しています。」}}]}、 "ステータス":400 }
次のように3)ショットのKibana開発ツールを実行しました。
原因分析
Elasticsearch 5.xの以降のバージョン、およびソート操作の重合、別個のキャッシュ・データ構造(fielddata)メモリに、別々に開く必要があります。
:詳細については、を参照してくださいfielddata
ソリューション
1)オープンマッピングマッピング利害フィールドになります、次の文を実行します。
PUTのmegacorp / _mapping /従業員/
{
"プロパティ" :{
"利益" :{
"タイプ": "テキスト" 、 "fielddata":真 } } }
次のようにオープンマッピングマッピング文で実行2)開発ツールのKibana、ショットは以下のとおりです。
3)、再び次の結果を重合文を実行します。
{ "took": 455, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": 3, "max_score": 1, "hits": [ { "_index": "megacorp", "_type": "employee", "_id": "2", "_score": 1, "_source": { "first_name": "Jane", "last_name": "Smith", "age": 32, "about": "I like to collect rock albums", "interests": [ "music" ] } }, { "_index": "megacorp", "_type": "employee", "_id": "1", "_score": 1, "_source": { "first_name": "John", "last_name": "Smith", "age": 25, "about": "I love to go rock climbing", "interests": [ "sports" ] } }, { "_index": "megacorp", "_type": "employee", "_id": "3", "_score": 1, "_source": { "first_name": "Douglas", "last_name": "Fir", "age": 35, "about": "I like to build cabinets", "interests": [ "forestry" ] } } ] }, "aggregations": { "all_interests": { "doc_count_error_upper_bound": 0, "sum_other_doc_count": 0, "buckets": [ { "key": "forestry", "doc_count": 1 }, { "key": "music", "doc_count": 1 }, { "key": "sports", "doc_count": 1 } ] } } }
4)Kibana 的 Dev Tools 中,执行效果截图如下: