我一直在尝试使用 JEST API 将一些信息写入工作 elasticsearch 7.3 集群。一些资源:
- 这里
遇到此错误消息:
URI [/my_index] 和方法 [POST] 的 HTTP 方法不正确,允许:[GET, DELETE, PUT, HEAD]
我按如下方式发送数据:
// write directly to elastic
Map<String, Object>infoMap = new LinkedHashMap();
lagInfoMap.put("type", "consumer");
lagInfoMap.put("topicval", topic);
lagInfoMap.put("groupval", group);
lagInfoMap.put("sumval", sumLag);
try {
jestResult = jestClient.execute(new Index.Builder(infoMap).index("my_index").build());
if(!jestResult.isSucceeded()) {
LOGGER.error(jestResult.toString());
}
} catch(IOException ioe) {
LOGGER.error("Unable to write to elastic", ioe);
return false;
}
似乎它想要一个 PUT 请求,但从文档(或我能找到的任何示例(中不清楚如何修改执行方法以执行此操作。
几天前我也遇到了同样的问题,最终放弃了在他们的 Github 页面上使用 JEST 进行 elasticsearch 7.3 的想法,看起来不像他们的最新版本是 6.3.1 https://github.com/searchbox-io/Jest/releases ,无法与 elasticsearch 7.X 兼容。
Elasticsearch 7.X使用PUT
HTTP方法来索引文档,而早期版本使用POST
方法,因此你会得到以下异常。
允许 uri [/my_index] 和方法 [POST] 的 HTTP 方法不正确: [获取、删除、放置、头]
我建议,你使用elasticsearch官方的高级Java客户端,而不是JEST,这是由elastic开发的,elasticsearch背后的公司。