我正在Ubuntu 16.04 Server上使用Apache Tika App作为命令线工具来提取文档内容。
[Apache Tika网站] [1]说:
构建工件
Tika版本包含许多组件,并生成 以下主要二进制文件:
tika-core / target / tika-core-*。jar Tika核心库。包含Tika的核心接口和类,但没有解析器 实现。仅取决于Java 6。
tika解析器/ target / tika-parsers-*。jar 。基于各种实现Tika Parser接口的类的集合 外部解析器库。
tika-app / target / tika-app-*。jar Tika应用程序。将上述组件和所有外部解析器库合并为一个 具有GUI和命令行界面的可运行jar。
因此,我下载了tika-app-*.jar
的最后一个版本(1.18)。那只是一个文件。
在类似java -jar tika-app-1.18.jar -t <filename>
的命令行中运行此命令不仅可以为我提供所需的文件内容输出,而且还可以在每次得到两个警告时提供给我:
2018年7月28日下午3:29:27 org.apache.tika.config.InitializableProblemHandler $ 3 handleInitializableProblem警告:J2KImageReader未加载。 JPEG2000文件将不会被处理。看到 https://pdfbox.apache.org/2.0/dependencies.html#jai-image-io的 可选的依赖项。
2018年7月28日下午3:29:27 org.apache.tika.config.InitializableProblemHandler $ 3 handleInitializableProblem警告:org.xerial的sqlite-jdbc不是 已加载。请在您的类路径中提供jar来解析sqlite 文件。有关正确的版本,请参见tika-parsers / pom.xml。
我不知道这些警告是否会减慢速度,但是很难在其他重复警告中跟踪其他输出。
我试图通过以下方式将Tika指向我自己的配置文件:
java -jar tika-app-1.18.jar --config=tika-config.xml -t <filename>
我的tika-config.xml文件是:
<?xml version="1.0" encoding="UTF-8"?>
<properties>
<parsers>
<parser class="org.apache.tika.parser.DefaultParser">
<mime-exclude>image/jpeg</mime-exclude>
<mime-exclude>application/x-sqlite3</mime-exclude>
<parser-exclude class="org.apache.tika.parser.jdbc.SQLite3Parser"/>
</parser>
</parsers>
</properties>
如果我使用该配置,则会得到No protocol: filename.doc
并且警告仍然存在。
如何排除jpeg和sqlite解析器?
答案 0 :(得分:0)
我的解决方案是这个tika-config.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<properties>
<service-loader loadErrorHandler="IGNORE"/>
<service-loader initializableProblemHandler="ignore"/>
<parsers>
<parser class="org.apache.tika.parser.DefaultParser">
<mime-exclude>image/jpeg</mime-exclude>
<mime-exclude>application/x-sqlite3</mime-exclude>
<parser-exclude class="org.apache.tika.parser.jdbc.SQLite3Parser"/>
</parser>
</parsers>
</properties>
然后设置:
export TIKA_CONFIG=/path/to/tika-config.xml
在我的.bashrc文件中。