2016-03-21 15 views
0

こんにちは私のEs v2.0の特定のフィールド "userId"にカスタムルーティングを設定したいとします。 しかし、それは私にエラーを与える。私はES v2.0のカスタムルーティングを設定する方法を知らない特定のフィールドのelasticsearchルーティング

私は助けてくれる人。私は助けてください。事前に感謝。 ES 2.0、_routing.pathメタフィールドhas been removed

{ 
    "error": { 
    "root_cause": [ 
     { 
      "type": "mapper_parsing_exception", 
      "reason": "Mapping definition for [_routing] has unsupported parameters: [path : userId]" 
     } 
    ], 
    "type": "mapper_parsing_exception", 
    "reason": "Mapping definition for [_routing] has unsupported parameters: [path : userId]" 
    }, 
"status": 400 
} 

答えて

1

。だから今あなたの代わりにこのようにそれを実行する必要があります。あなたのマッピングでは

、あなただけのルーティングが必要であることを指定することができます(ただし、もうpathを指定することはできません)。その後、

PUT my_index 
{ 
    "mappings": { 
    "my_type": { 
     "_routing": { 
     "required": true 
     }, 
     "properties": { 
     "name": { 
      "type": "string" 
     } 
     } 
    } 
    } 
} 

としたときにインデックス文書を

PUT my_index/my_type/1?routing=bar 
{ 
    "name": "foo" 
} 
+0

私のインデックスのUserIdというフィールドにルーティングします。クエリに手動でルーティングを挿入したくありません。次のようにクエリ文字列にルーティング値を指定できます。 –

+0

残念ながら、あなたはES 2.xの選択肢がありません。今はそうです。これは主にパフォーマンス上の理由で行われました(https://github.com/elastic/elasticsearch/issues/6730) – Val

+0

yess val ...ありがとうございました。 –

関連する問題