2017-06-05 11 views
1

私はElasticsearchでインデックスを作成しようとしています。私はESのローカルインスタンスをデプロイしており、クエリはうまく動作します。しかし、私はスキーマを持っています。ここでは、次のとおりです。インデックス検索中にElasticsearchフィールドデータがサポートされない

{ 
    "mappings": { 
    "payment":{ 
     "properties":{ 
     "timestamp":{"type":"date"}, 
     "base_amount":{"type":"integer"}, 
     "derived_id":{"type":"keyword", "fielddata": true}, 
     "attempts":{"type":"integer"}, 
     "status":{"type":"text","fielddata":true}, 
     "error_code":{"type":"text","fielddata":true} 
     } 
    } 
    } 
} 

ここで私は、このインデックス

import json 

import requests 

schema = { 
    "mappings": { 
     "payment": { 
      "properties": { 
       "timestamp": {"type": "date"}, 
       "base_amount": {"type": "integer"}, 
       "derived_key": {"type": "keyword", "fielddata": True}, 
       "attempts": {"type": "integer"}, 
       "status": {"type": "text", "fielddata": True}, 
       "error_code": {"type": "text", "fielddata": True} 
      } 
     } 
    } 
} 

index = 'http://localhost:9200/payment_index_2016_08_21' 
r = requests.put(index, data=json.dumps(schema)) 

print r.content 

を作成するために使用していたコードは、私が手にエラーが

{ "エラー" です:{ "ROOT_CAUSE": [フィールドのデータ: true] "}"、 "タイプ": "mapper_parsing_exception"、 "reason": "失敗しました" [["type": "mapper_parsing_exception"、 "reason": "[derived_key]のマッピング の定義にサポートされていないパラメータがあります。解析する: マッピング[支払い]:[派生キー]のマッピング定義には、 サポートされていないパラメータがあります:[フィールドデータ: true] "、"被害者 ":{"タイプ ":" mapper_parsing_exception "、"理由 ":"派生キーの定義 サポートされていないパラメータ:[fielddata: 真] "}}、" ステータス ":400}

fielddata = trueが問題を引き起こしている、なぜ私はそれがここにhttps://www.elastic.co/guide/en/elasticsearch/reference/current/fielddata.html許可されています参照するので、私は、理解していません。これの背後にある問題は何か手掛かりがありますか?

答えて

1

fielddataをキーワードフィールドで有効にする必要はありません。キーワードフィールドの集計を行うことができます。

+0

だから私はそれを削除し、それは正常に動作するはずですか? – bholagabbar

+0

はい。それが再びエラーを提供しない場合:-) –

+0

うまく動作します。つまり、キーワードでは、デフォルトで集計を実行できます。fielddata = true(すでに有効になっているため)でフィールドデータを有効にする必要はありません。フィールドデータの目的は、矛盾を修正することです。 – bholagabbar