我正在研究使用 DataImportHandler 来使用 FileDataSource 和 FileListEntityProcessor 导入我的数据文件,并且在开始之前有几个问题希望你们能提供帮助。
1) 我想在本地文件系统中的配置位置放置一个文件,让 Solr 查看和处理该文件,而无需我付出额外的努力。这是否可行?据我所见,这是不支持的,我必须手动调用一个 URL(例如 http://foo/solr/dataimport?command=full-import)。在面向数据库的世界中,基于 URL 的手动调用方法似乎非常合乎逻辑,人们可能会安排更新定期运行,但在我的情况下,我有几个相同的索引,我在它们之间进行负载平衡并且不想运行相同的索引大量并行查询。因此,我正在执行一个查询,将结果写入 XML 文件,将该文件推送到每个框,然后希望处理该文件。我希望这个过程尽可能自动化。
2) 我希望 Solr 处理的所有文件在导入后被删除。我目前还没有看到任何方法可以做到这一点。我认为我可能能够对某些东西进行子类化,但例如 FileListEntityProcessor 似乎没有在工作流中的正确时间提供任何句柄来删除文件。还有什么地方可以看吗?
3) 在阅读 DIH 文档时,我遇到了以下语句:“执行 delta-import 命令时,它会读取存储在conf/dataimport.properties中的开始时间。它使用该时间戳来运行 delta 查询,并在完成后更新conf/dataimport.properties中的时间戳。” 如果它确实将日期更新为完成日期,那么在开始日期和结束日期之间添加的任何文件会发生什么情况?他们迷路了吗?
4) 对于增量导入,我没有看到处理文件的排序方式,只是它尝试不重新导入比 conf/dataimport.properties 文件中提到的文件更旧的文件。在顺序很重要的情况下,它是按名称或创建日期对文件进行排序还是...?