作为升级工具的一部分,我有数十亿个SolrInputDocument文档的文件,我想在ElasticSearch上以最大速度编制索引。
我目前的计划是将它们转换为JSON并使用弹性批量更新来上传它们。但是我没有找到一种简单的方法来转换它们
有关此类转换的代码/方法/工具的任何信息&上传将不胜感激。
对我有用的可能解决方案(对于不包括子文档的简单情况):
Map<String, Object> solrDocToMap(SolrInputDocument sid) {
Map<String, Object> json = new HashMap<String, Object>();
for (SolrInputField field : sid) {
json.put(field.getName(), field.getValue());
}
return json;
}
可以使用弹性客户端的XContentFactory.jsonBuilder()。
答案 0 :(得分:0)
我构建了一个允许您这样做的工具,基本上是一个Solr UpdateRequestProcessor,它将Solr文档发送给ES。您可以查看代码here。
您可以查看代码如何将Solr文档转换为ES,并从中开始。