我有大量的 PDF/Word/Excel/等。要索引的文件(现在 40GB,但在某些月份可能高达 1000GB),我正在考虑使用 Solr,带有 DataImportHandler 和 Tika。我已经阅读了很多关于这个主题的主题,但是有一个问题我仍然没有找到解决方案:如果我索引所有文件(完整或增量导入),删除文件系统中的一个文件,然后再次索引(使用delta import),则不会从索引中删除该文件对应的文档。
这里有一些可能性:
- 进行完全导入。但我想尽可能避免这种情况,因为我认为这可能非常耗时(几天,但不是很重要)和带宽消耗(主要问题,因为文件位于共享网络驱动器上)。
- 实现一个脚本,该脚本将验证索引中的每个文档是否存在相应的文件(占用更少的带宽)。但我不知道我是否应该在 Solr 内部或外部执行此操作,以及如何操作。
您还有其他想法或执行第二种解决方案的方法吗?提前致谢。
一些细节:
- 我将使用 FileListEntityProcessor 的“newerThan”选项进行增量导入。
- 如果我存储文档被索引的日期,它对我没有帮助,因为如果我在上次导入时没有索引一个文档,可能是因为他已被删除或因为它没有更改(增量导入)
- 我既有存储字段也有未存储字段,因此我认为使用 Solr 4.0 的新可能性仅更改文档中的一个字段不是解决方案。