如何在 Apache SolR 中索引 pdf/word 文档
Posted
技术标签:
【中文标题】如何在 Apache SolR 中索引 pdf/word 文档【英文标题】:How to index a pdf / word doc in Apache SolR 【发布时间】:2016-08-11 10:15:52 【问题描述】:我是大数据环境的新手,因此如果以下查询毫无意义,请先道歉。
我想阅读一个 word/pdf 文档并在 SolR 中索引这些文档。我了解 SolR 接受 JSON 或 XML 格式,而不是 word / pdf / txt 文件。在将文档发送到 SolR 之前,是否需要将 word/pdf 文档转换为 JSON 或 XML?我最初认为我应该使用 Tika,但我的理解是 Tika 可以将 pdf 转换为文本而不是 JSON。
能否请您指导如何在 Solr 中建立索引?
感谢您的帮助
【问题讨论】:
请阅读Documentation - JSON / XML 格式只是对您提交的文件的描述 @user1859022 - 谢谢。我只能单独索引文档的元数据。但是,我无法从这些文档中索引实际内容。无论如何可以提取实际内容吗? 【参考方案1】:索引“丰富文件”的标准端点位于update/extract
,因此如果您将文件发布到该目的地,Solr 将在内部通过 Tika 运行它,提取文本和属性。您可以通过带有 literal.fieldname=value
参数的 URL(例如 ID、文件名、其他元数据)提供文字值。
手册中的Uploading Data with Solr Cell using Apache Tika 描述为您简要介绍了如何通过 HTTP 使用 curl 提交文档,以及启用自动提取所需的配置选项(在一些示例中启用) (数据驱动,技术产品 iirc)):
如果您不使用提供的 sample_techproducts_configs 或 data_driven_schema_configs 配置集,则必须配置自己的 solrconfig.xml 以了解包含 ExtractingRequestHandler 的 Jar 及其依赖项:
<lib dir="$solr.install.dir:../../../contrib/extraction/lib" regex=".*\.jar" />`
<lib dir="$solr.install.dir:../../../dist/" regex="solr-cell-\d.*\.jar" />
然后您可以在 solrconfig.xml 中配置 ExtractingRequestHandler。
<requestHandler name="/update/extract" class="org.apache.solr.handler.extraction.ExtractingRequestHandler">
<lst name="defaults">
<str name="fmap.Last-Modified">last_modified</str>
<str name="uprefix">ignored_</str>
</lst>
<!--Optional. Specify a path to a tika configuration file. See the Tika docs for details.-->
<str name="tika.config">/my/path/to/tika.config</str>
<!-- Optional. Specify one or more date formats to parse. See DateUtil.DEFAULT_DATE_FORMATS
for default date formats -->
<lst name="date.formats">
<str>yyyy-MM-dd</str>
</lst>
<!-- Optional. Specify an external file containing parser-specific properties.
This file is located in the same directory as solrconfig.xml by default.-->
<str name="parseContext.config">parseContext.xml</str>
</requestHandler>
【讨论】:
以上是关于如何在 Apache SolR 中索引 pdf/word 文档的主要内容,如果未能解决你的问题,请参考以下文章