我有一小组描述性元数据(约 50 个),每个元数据都有一个相应的全文文件(.txt)。我的理解是 Apache Tika 框架用于从各种类型的文档中检测和提取元数据和结构化文本。但是,我还需要实现一个链接机制,从而将给定的元数据与其全文匹配。这可以在 Solr 中完成吗?
谢谢,
伊拉里亚
我有一小组描述性元数据(约 50 个),每个元数据都有一个相应的全文文件(.txt)。我的理解是 Apache Tika 框架用于从各种类型的文档中检测和提取元数据和结构化文本。但是,我还需要实现一个链接机制,从而将给定的元数据与其全文匹配。这可以在 Solr 中完成吗?
谢谢,
伊拉里亚
如果您有元数据和文档内容,您可以索引元数据并存储内容。您的字段定义看起来像这样
<field name="filename" type="text" indexed="true" stored="true"/>
... <!-- other metadata /-->
<field name="content" type="text" indexed="false" stored="true"/>
这将允许您通过任何元数据进行搜索,并将内容返回给您。您可以根据需要添加尽可能多的元信息来搜索文本。我不会索引全文,因为已经有一些结构化的元数据可用。
Apache TIKA 从 HTML 页面等中提取元信息。由于您已经拥有可用的元数据,因此您无需使用 TIKA。此外,AFAIK,Tika 不适用于纯文本文件。
编辑 1:
好的,所以元数据和内容之间的链接将在 Solr 中维护。例如,如果你有
File1.txt <-> Metadata1.txt
您可以在 Solr 中有一个记录(文档),它具有(元数据字段数 + 1 个纯文本内容字段)。这使您可以灵活地通过任何元数据查找文档。例如,
q=filename:File1.txt
或者
q=filesize:[1 to 100]
wherefilename
和filesize
是示例元数据字段。plaintextcontent
将是您的文本文件内容,因此在您的 Solr 模式中,您有您的链接。
现在的诀窍是设置索引。这是一种方法 -
索引文本文件非常简单。您可以使用DataImportHandler 的 PlainTextEntityProcessor。
将元数据与它一起索引可能有点棘手(需要了解元数据的结构)。您可以使用LineEntityProcessor或 DataImportHandler 的任何一个转换器,具体取决于最适合您的。