从上传文件中提取文本的建议

时间:2012-04-20 08:17:03

标签: sql apache-poi text-extraction

我目前每天都有许多文档上传到我的网站(.doc,.docx,.odt,pdf),这些文档存储在sql数据库(mediumblob)中。

目前,我从数据库中打开文档,并将文本版本剪切并粘贴到数据库中的字段中,以便快速参考和搜索功能。

我正在寻求自动化这种“剪切和粘贴”过程 - 只要我能提取文本,格式化就不是真正的问题 - 而且希望有些人可以建议一个好的途径下去?

我尝试使用正则表达式操作blob字段的内容,但它并没有真正起作用。

我一直在关注Apache POI,以便在上传时提取文本,但我不禁想到,考虑到我相对简单的需求,这可能有点过分。

鉴于我遇到的各种文档格式以及当前在blob字段中存储内容,Apache POI是在这种情况下使用的最佳解决方案还是任何人都可以建议替代方案?

非常感谢帮助和建议。

克里斯

1 个答案:

答案 0 :(得分:0)

Apache POI仅适用于Microsoft Office格式(.xls,.docx,.msg等)。对于这些格式,它提供了处理文件的类(总是读取,对于许多写入支持也是如此),以及文本提取器。

对于一般文本提取框架,您应该查看Apache Tika。 Tika在内部使用POI来处理Microsoft格式,并使用许多其他库来处理不同的格式。例如,Tika将处理PDF和ODF / ODT,这是您在问题中提到的另外两种文件格式。

Apache Tika website上有一些快速入门教程和示例,我建议你仔细看看。开始使用非常快,您应该能够轻松更改代码,以便在上传期间通过Tika发送文档以获取纯文本版本,或者如果对您更有帮助,则可以使用事件XHTML。