0

请找到以下映射,我们正在尝试更新域类型中的域字段。

 "mappings":{  
   "candidate":{  
      "_all":{  
         "enabled":false
      },
      "properties":{  
         "domains":{  
            "properties":{  
               "country":{  
                  "type":"short",
                  "include_in_all":false
               },
               "domains":{  
                  "type":"string",
                  "copy_to":[  
                     "domain_exact",
                     "domain_partial"
                  ]
               }
            }
         }
      }
   }
}

下面给出的java代码,

esMgr.updateIndex(indexName, "candidate", domainDetails[2]).setDoc("domains.domains", domainDetails[1])
                                .get();

我们得到以下异常,

Caused by: MapperParsingException[Field name [domains.domains] cannot contain '.'] 

任何人都可以帮助我们如何在 java 中解决这个问题。

4

1 回答 1

0

要更新,您可以尝试:

UpdateRequestBuilder br = client.prepareUpdate(indexName, "candidate", domainDetails[2]);
br.setDoc("{\"domains\":{ \"domains\": " + domainDetails[1] + "}}".getBytes());
br.execute();
于 2017-01-27T11:39:50.020 回答