【问题标题】:Indexing Multiple documents and mapping to unique solr id索引多个文档并映射到唯一的 solr id
【发布时间】:2012-03-04 20:31:06
【问题描述】:

我的用例是索引 2 个文件:元数据文件和二进制 PDF 文件到唯一的 solr id。元数据文件具有 XML 文件形式的内容,并且一些架构字段映射到该 XML 文件中的元素。

我的工作:从 PDF 文件中提取内容(使用 pdftotext),处理该内容并检索特定信息(例如:PDF 的第一页/行包含有关药物、研究阶段的信息)。检索到的信息(医学/研究阶段)需要建立索引,并且应该能够搜索/排序/分面。

我可以创建一个包含检索到的信息的 XML 文件(我们将其称为元数据文件)。现在假设我的架构是

<field name="medicine" type="text" stored="true" indexed="true"/>
<field name="researchStage". ../>

有没有办法把这个元数据文件和 PDF 文件放到 Solr 中?

我尝试过的:

  1. 根据档案中的建议,我将这些文件压缩并提供给 ExtractRequestHandler。我能够将所有内容放在 SOLR 中并使其可搜索。但它显示为 zip 文件的内容。(我必须对 Solr 代码库应用一些补丁才能使其工作)。但这还不够,因为元数据文件中的内容没有映射​​到字段名称。 curl "http://localhost:8983/solr/update/extract?literal.id=doc1&commit=true" -F "myfile=@file.zip"

  2. 我尝试使用 DataImportHandler(binURLdatasource)。但我不认为我理解它是如何工作的。所以走不了多远。

  3. 我想将元数据标签添加到 PDF 本身。为此,ExtractrequestHandler 应处理此元数据。我也不确定。 所以我尝试“pdftk”来添加元数据。无法为其添加自定义标签。它只更新/添加标题/作者/关键字等。有谁知道类似的 unix 工具。

如果有人有提示,请分享。 我想避免创建 1 个文件(通过合并 PDF 文本 + 元数据文件)。

【问题讨论】:

  • 您的意思是要使用 Solr 为 PDF 文件编制索引,还是您确实希望将 PDF 文件的 内容 放在 Solr 索引中?

标签: pdf solr


【解决方案1】:

给定一个文件 record1234.pdf 和如下元数据:

<metadata>
<field1>value1</field1>
<field2>value2</field2>
<field3>value3</field3>
</metadata>

执行与

等效的程序化操作
curl "http://localhost:8983/solr/update/extract?
literal.id=record1234.pdf
&literal.field1=value1
&literal.field2=value2
&literal.field3=value3
&captureAttr=true&defaultField=text&capture=div&fmap.div=foo_txt&boost.foo_txt=3&"  -F "tutorial=@tutorial.pdf"

改编自http://wiki.apache.org/solr/ExtractingRequestHandler#Literals

这将在索引中创建一个新条目,其中包含来自 Tika/Solr CEL 的 text 输出以及您指定的字段。

您应该能够用您喜欢的语言执行这些操作。


元数据文件中的内容未映射到字段名称

如果它们没有映射到预定义字段,则使用动态字段。例如,您可以将 *_i 设置为整数字段。

我想避免创建 1 个文件(通过合并 PDF 文本 + 元数据文件)。

这看起来像是程序员的疲劳 :-) 但是,你有充分的理由吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 2016-07-19
    • 2016-03-15
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多