ElasticSearch - 无法读取请求数据

时间:2014-02-24 13:40:30

标签: java api elasticsearch

我正在关注此消息来源:

Elastic Search Example

我创建了一段代码:

import static org.elasticsearch.node.NodeBuilder.nodeBuilder;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

import org.elasticsearch.client.Client;
import org.elasticsearch.node.Node;

public class ElasticSearchAPI {

    public static void main(String[] args) {

        Node node = nodeBuilder().clusterName("yourclustername").node();
        Client client = node.client();

        client.prepareIndex("kodcucom", "article", "1")
                .setSource(
                        putJsonDocument(
                                "ElasticSearch: Java API",
                                "ElasticSearch provides the Java API, all operations "
                                        + "can be executed asynchronously using a client object.",
                                new Date(), new String[] { "elasticsearch" },
                                "Huseyin Akdogan")).execute().actionGet();

        node.close();
    }

    public static Map<String, Object> putJsonDocument(String title,
            String content, Date postDate, String[] tags, String author) {

        Map<String, Object> jsonDocument = new HashMap<String, Object>();

        jsonDocument.put("title", title);
        jsonDocument.put("conten", content);
        jsonDocument.put("postDate", postDate);
        jsonDocument.put("tags", tags);
        jsonDocument.put("author", author);

        return jsonDocument;
    }

}

我使用命令行运行ElasticSearch:

  

elasticsearch.bat

并且运行正常:

server

之后,我运行我的Java代码,这是Eclipse和服务器的日志:

errors

我应该配置什么?我看到这样的教程很少,每次都是类似的代码,对我来说永远不会有用。

由于

2 个答案:

答案 0 :(得分:1)

你的jsonDocument有一个拼写错误:

 jsonDocument.put("conten", content);

应该是

 jsonDocument.put("content", content);

我认为

答案 1 :(得分:1)

好的,我解决了这个问题。实际上,问题在于ElasticSearch Client和ES Java API的版本。

将ES Java API升级到与ES Client相同的版本解决了这个问题。

更多信息:

Java API 1.x Client

  

重要的:

     

请注意,我们鼓励您在客户端上使用相同的版本   和集群方面。您可能会遇到一些不兼容问题   混合主要版本。