我正在关注此消息来源:
我创建了一段代码:
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和服务器的日志:
我应该配置什么?我看到这样的教程很少,每次都是类似的代码,对我来说永远不会有用。
由于
答案 0 :(得分:1)
你的jsonDocument有一个拼写错误:
jsonDocument.put("conten", content);
应该是
jsonDocument.put("content", content);
我认为
答案 1 :(得分:1)
好的,我解决了这个问题。实际上,问题在于ElasticSearch Client和ES Java API的版本。
将ES Java API升级到与ES Client相同的版本解决了这个问题。
更多信息:
重要的:
请注意,我们鼓励您在客户端上使用相同的版本 和集群方面。您可能会遇到一些不兼容问题 混合主要版本。