将SolrInputDocument发送到ElasticSearch

时间:2017-07-24 13:02:46

标签: elasticsearch solr

作为升级工具的一部分,我有数十亿个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()。

1 个答案:

答案 0 :(得分:0)

我构建了一个允许您这样做的工具,基本上是一个Solr UpdateRequestProcessor,它将Solr文档发送给ES。您可以查看代码here

您可以查看代码如何将Solr文档转换为ES,并从中开始。