1

ElasticSearchでネストされたドキュメントを作成しようとしています。elasticsearchマッピングパーサー例外

構造: タイトル、名前、コメント コメントはネストされたドキュメントです - その中 - コメント& Star_Rating。 コメント、名前、住所の内部。

以下に示すクエリがあります。

PUT /sounduu 
    { 
    "mappings": { 
     "blogpost": { 
      "properties": { 
       "title": { 
        "type": "string" 
       }, 
       "name": { 
        "type": "string" 
       }, 
       "comments": { 
        "properties": { 
         "comment": { 
          "properties": { 
           "name": { 
            "type": "string" 
           }, 
           "address": { 
            "type": "string" 
           } 
          } 
         }, 
         "star_rating": { 
          "type": "long" 
         } 
        } 
       } 
      } 
     } 
    } 
} 


PUT /sounduu/blogpost/1 
{ 
    "title": "someh_title", 
    "name":"soundy", 
    "comments": { 
     "comment":"kuu", 
     [{ 
      "name":"juwww", 
      "address":"eeeey" 
     }, 
     { 
      "name":"jj", 
      "address":oo" 
     }] 
    }, 
    "star_rating":6 
} 

エラー:

{ 
    "error": { 
     "root_cause": [ 
     { 
      "type": "mapper_parsing_exception", 
      "reason": "object mapping for [comments.comment] tried to parse field [comment] as object, but found a concrete value" 
     } 
     ], 
     "type": "mapper_parsing_exception", 
     "reason": "object mapping for [comments.comment] tried to parse field [comment] as object, but found a concrete value" 
    }, 
    "status": 400 
} 

誰もがこれを支援することはできますか?

答えて

0

PUT /sounduu/blogpost/1リクエストでは、「コメント」プロパティをネストされたオブジェクトと文字列の両方として扱おうとしています。あなたはどちらか

{ 
    "title": "someh_title", 
    "name": "soundy", 
    "comments": { 
     "comment": "kuu", 
     [{ 
      "name": "juwww", 
      "address": "eeeey" 
     }, 
     { 
      "name": "jj", 
      "address": oo" 
     }] 
    }, 
    "star_rating":6 
} 

「テキスト」プロパティが含まれ、それに応じて"comment": "kuu"コンテンツを移動したり、あなたの要求からそれを省略するためにあなたのマッピングを更新する必要があります:あなたの要求のJSONをフォーマット

、あなたは問題を観察することができます現在のマッピングで作業します。

ここで例 - 私にとってそうのようなグループのすべてに論理的なようだ:

PUT /sounduu 
    { 
    "mappings": { 
     "blogpost": { 
      "properties": { 
       "title": { 
        "type": "string" 
       }, 
       "name": { 
        "type": "string" 
       }, 
       "comments": { 
        "properties": { 
         "text" : { 
          "type": "string" 
         }, 
         "name": { 
          "type": "string" 
         }, 
         "address": { 
          "type": "string" 
         } 
        } 
       }, 
       "star_rating": { 
        "type": "long" 
       } 
      } 
     } 
    } 
} 

インデックス要求は、その後、次のようになります。

{ 
    "title": "someh_title", 
    "name": "soundy", 
    "comments": [ 
     { 
      "text": "kuu", 
      "name": "juwww", 
      "address": "eeeey" 
     }, 
     { 
      "text": "kuu2", 
      "name": "jj", 
      "address": oo" 
     } 
    ], 
    "star_rating":6 
} 
+0

ryanlutgen - お返事に感謝を。 「テキスト」プロパティを使用してマッピングを更新し、コメントコンテンツを移動するにはどうすればよいですか? –

+0

私はこの状況で私がすることの例を使って私の答えを編集しました。 – ryanlutgen

+0

あなたの答えをありがとう。同じケースが私のために働く!私が期待していることは、たとえば、テキストの中にもう1つ入れ子になった文書があると思います。 –

関連する問題