我们可以从两种不同的格式索引Solr单核数据,即来自csv和text吗?

时间:2017-09-20 10:27:52

标签: solr full-text-search solrj

我有两种格式CSV和TEXT的数据。

1)CSV文件包含元数据。即ModifyScore,Size,fileName等。

2)实际文本位于包含a.txt,b.txt等文件的文本文件夹中。

请问是否可以通过DIH或其他可能的方式在Solr中将这些数据编入索引?

3 个答案:

答案 0 :(得分:0)

根据您的使用案例,我将继续使用自定义索引应用。 显然,您希望构建Solr文档,从CSV中获取某些字段以及TXT中的其他字段(内容)。

以Java为例,它将非常简单: 您可以使用SolrJ,从CSV和TXT获取数据,构建每个Solr文档,然后将其编入索引。

如果我可以在数据库中移动数据,我会使用DIH(即使2个表也没问题,因为DIH支持连接)。 开箱即用,您可能对使用脚本[1]变换器感兴趣。 将它与您的不同数据源结合使用可能会起作用。 你需要玩一点,因为它不是你问题的直接解决方案。

[1] https://cwiki.apache.org/confluence/display/solr/Uploading+Structured+Data+Store+Data+with+the+Data+Import+Handler#UploadingStructuredDataStoreDatawiththeDataImportHandler-TheScriptTransformer

答案 1 :(得分:0)

仅举几个可能性:

  1. 使用DIH将txt文件索引到collectionA中,并使用/ update处理程序直接将csv摄取到collectionB中,然后使用Streaming Expressions将两者合并到您想要保留的第三个集合中。主要优点是一切都在Solr,没有外部代码。

  2. 使用DIH索引文件(或/更新索引csv)并编写一个Update Request Processor,它将在索引之前拦截文档,从另一个源查找信息,并将其添加到doc。

答案 2 :(得分:0)

是的,信息和代码是可能的,如何索引来自多个异构数据源的数据,请参阅why the tikaEntityProcesor does not index the Text field in the following data-config file?