我是比较新的ElasticSearch,当你开始elasticsearch Java客户端,我注意到,它开始大量的线程(〜50).
我试图利用这一点,买的找不到一种方法,使一个异步写入(index)来ES.
官方API的建议是使用:
IndexResponse response = client.prepareIndex(indexName, documentName)
.setSource(mapper.writeValueAsString(data))
.get();
即使在一个新的线程它仍然封锁,因为它等待响应我有这个运行,包含新创建的ID等等.
是否有可能写以异步方式来ES,而无需创建其他50级地方的线程来匹配ES的50分内部的吗?
最佳答案
如果有人偶然发现此问题,则解决方案是使用.execute(),该函数返回ListenableActionFuture< Response>.
例如
client.prepareIndex(indexName, documentName)
.setSource(mapper.writeValueAsString(data))
.execute();