我的用例是将 2 个文件索引:元数据文件和二进制 PDF 文件到唯一的 solr id。元数据文件具有 XML 文件形式的内容,某些架构字段映射到该 XML 文件中的元素。
我的工作:从 PDF 文件中提取内容(使用 pdftotext),处理该内容并检索特定信息(例如:PDF 的第一页/行包含有关药物、研究阶段的信息)。检索到的信息(医学/研究阶段)需要建立索引,并且应该能够搜索/排序/方面。
我可以创建一个包含检索到的信息的 XML 文件(我们将其称为元数据文件)。现在假设我的架构是
<field name="medicine" type="text" stored="true" indexed="true"/>
<field name="researchStage". ../>
有没有办法把这个元数据文件和PDF文件放在Solr中?
我尝试过的:
根据档案中的建议,我压缩了这些文件并提供给 ExtractRequestHandler。我能够将所有内容放入 SOLR 中并使其可搜索。但它显示为 zip 文件的内容。(我必须对 Solr 代码库应用一些补丁才能使其工作)。但这还不够,因为元数据文件中的内容未映射到字段名称。
卷曲“http://localhost:8983/solr/update/extract?literal.id=doc1&commit=true”-F“[电子邮件受保护] /cdn-cgi/l/email-protection"
我尝试使用 DataImportHandler(binURLdatasource)。但我认为我不明白它是如何工作的。所以不能走远。
我想到向 PDF 本身添加元数据标签。为此,ExtractrequestHandler 应该处理此元数据。我也不确定。
所以我尝试“pdftk”来添加元数据。无法为其添加自定义标签。它只更新/添加标题/作者/关键字等。有谁知道类似的unix工具。
如果有人有提示,请分享。
我想避免创建 1 个文件(通过合并 PDF 文本 + 元数据文件)。
给定一个文件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 "[email protected] /cdn-cgi/l/email-protection"
改编自http://wiki.apache.org/solr/ExtractingRequestHandler#Literals http://wiki.apache.org/solr/ExtractingRequestHandler#Literals .
这将在索引中创建一个新条目,其中包含text
Tika/Solr CEL 的输出以及您指定的字段。
您应该能够用您喜欢的语言执行这些操作。
元数据文件中的内容未映射到字段名称
如果它们未映射到预定义字段,则使用动态字段。例如您可以设置一个*_i
是一个整数字段。
我想避免创建 1 个文件(通过合并 PDF 文本 + 元数据文件)。
这看起来像是程序员疲劳:-) 但是,你有充分的理由吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)