ElasticSearch - 无法读取请求数据
问题描述:
我下面这个来源:ElasticSearch - 无法读取请求数据
和我创建了一段代码:
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
并正确运行:
在那之后,我跑我的Java代码,这里是从Eclipse的日志和服务器:
我应该配置什么?我看到过这样的教程,每次都是非常类似的代码,这些代码从来不适合我。
感谢
答
好吧,我解决了这个问题。实际上,问题出在ElasticSearch Client和ES Java API的版本上。
将ES Java API升级到与ES Client相同的版本解决了此问题。
此处了解详情:
重要:
请注意,我们鼓励您使用相同版本的客户端 和集群两侧。 混合主要版本时,您可能会遇到一些不兼容问题。
答
你jsonDocument有一个错字:
jsonDocument.put("conten", content);
应该
jsonDocument.put("content", content);
我相信
这只是我的HashMap中的一个键名 – ruhungry