elasticsearch,field,Java,Json,Api,elasticsearch,Field" /> elasticsearch,field,Java,Json,Api,elasticsearch,Field" />

Elasticsearch获取字段的值-java API

Elasticsearch获取字段的值-java API,java,json,api,elasticsearch,field,Java,Json,Api,elasticsearch,Field,嗨,伙计们,我是elasticsearch的新手,我正在尝试处理我目前遇到的错误。所以我只需要一个字段值,例如“xmldata”,我在前面的过程中在xml文件中添加了它。xml格式为json,成功加载到我的ES服务器,json文件正确 这是我的代码: Client client = TransportClient.builder().build() .addTransportAddress(new InetSocketTransportAddress(In

嗨,伙计们,我是elasticsearch的新手,我正在尝试处理我目前遇到的错误。所以我只需要一个字段值,例如“xmldata”,我在前面的过程中在xml文件中添加了它。xml格式为json,成功加载到我的ES服务器,json文件正确

这是我的代码:

        Client client = TransportClient.builder().build()
            .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

    // GetResponse response = client.prepareGet("store", "xml",
    // xsdid).setFields("xmldata").execute().actionGet();
    GetResponse response = client.prepareGet().setIndex("store").setType("xml").setId(xsdid).setFields("xml").execute().actionGet();

    String id = (String) response.getSource().get("xml");
我发现以下错误:

MapperParsingException[解析失败];嵌套:IllegalArgumentException[格式不正确的内容,解析后发现额外数据:START_OBJECT]

如果需要,我的XML如下所示:

    <?xml version="1.0" encoding="UTF-8"?><XmlDoc><FunctionResult result="success"><Message>Processed Correct!</Message></FunctionResult>
<billing>
<billing_id>571</billing_id>
<appid>mft</appid>
<senderbtid>20041900-107</senderbtid>
<receiverbtid>20041900-40</receiverbtid>
<messagetype>M_SLSRPT</messagetype>
<messageid>83815</messageid>
<messageprops/>
<tmid>842</tmid>
<tmmsgcnt>0</tmmsgcnt>
<tmmsgtotal>1</tmmsgtotal>
<procdate>2014-12-02T03:10:15.406</procdate>
<xmldata>PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48WG1sRG9jPg0KPGJpbGxpbmc+DQo8YmlsbGluZ19pZD41NzE8L2JpbGxpbmdfaWQ+DQo8YXBwaWQ+bWZ0PC9hcHBpZD4NCjxzZW5kZXJidGlkPjIwMDQxOTAwLTEwNzwvc2VuZGVyYnRpZD4NCjxyZWNlaXZlcmJ0aWQ+MjAwNDE5MDAtNDA8L3JlY2VpdmVyYnRpZD4NCjxtZXNzYWdldHlwZT5NX1NMU1JQVDwvbWVzc2FnZXR5cGU+DQo8bWVzc2FnZWlkPjgzODE1PC9tZXNzYWdlaWQ+DQo8bWVzc2FnZXByb3BzLz4NCjx0bWlkPjg0MjwvdG1pZD4NCjx0bW1zZ2NudD4wPC90bW1zZ2NudD4NCjx0bW1zZ3RvdGFsPjE8L3RtbXNndG90YWw+DQo8cHJvY2RhdGU+MjAxNC0xMi0wMlQwMzoxMDoxNS40MDY8L3Byb2NkYXRlPg0KPC9iaWxsaW5nPg0KPC9YbWxEb2M+DQoNCg==</xmldata></billing>
</XmlDoc>
处理正确!
571
mft
20041900-107
20041900-40
M_SLSRPT
83815
842
0
1.
2014-12-02T03:10:15.406
2.中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的一个中国的GGGGGGGGGGGGGGGGGGGGGGBGGGGGGGGGGGGGGGGGGGBBBBWWWBBBWWWBBBBBBBBBBBBZZZZZZZZZZGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBC9TZXNZYWDLAWQ+DQo8bWVzc2NZXB3BZLZ4NCJX0BWLKPJG0MJWVDG1PZD4NCJX0BW1ZZ2NUDD4WPC90BW1Z2NUDD4NCJX0BW1Z3RVDGFSPJE8L3RTBXNNDG90YWW+DQo8cHJvY2RhdGU+MJAXNC0xMI0WMLQWMZOXMDOXNS40MDY8L3B2NKYXRLPG0KPC9IAWXSAW5NPG0KPC9YBWXEB2M+DQoNCg==
请帮帮我! 感谢

Client-Client=TransportClient.builder().build().addTransportAddress(新的InetSocketTransportAddress(InetAddress.getByName(“localhost”),9300));
GetResponse GetResponse=client.prepareGet(“数据库”、“xsd”、xsdid”).execute().actionGet();
Map source=getResponse.getSource();
像这样,我要取回完整的json文件

但是,有没有更好的方法只获取一个(xmldata)

Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

    GetResponse getResponse = client.prepareGet("database", "xsd", xsdid).execute().actionGet();

    Map<String, Object> source = getResponse.getSource();