在 Solr 示例目录中尝试 Tika

首先启动 Solr 示例的服务:

java -jar start.jar

新开一个命令行窗口,定位到 docs 目录下,通过 HTTP POST 向 Solr 发送一个文件。

cd docs
curl “http://localhost:8983/solr/update/extract?literal.id=doc1&commit=true” -F “myfile=@tutorial.html

curl 的安装请参看前面的章节,在windows下,建议将 curl 安装目录放入环境变量的 Path 中。

上面的 URL 调用了 Extraction Request Handler,上传了 tutorial.html 这个文件,并制定它的 ID 为 doc1.以下是这个命令各个部分的解释:
  • literal.id=doc1 参数为被索引的文档提供必需的唯一 ID
  • commit=true 这个参数发送了一个提交请求(commit),让数据马上就能被搜索到。为了性能考虑,在提交大量文档时,不要每个文档都发送提交请求。
  • -F 参数提示 curl POST 数据时使用 multipart/form-data 这个 Content-Type,这样能支持二进制文件上传。
  • myfile=@tutorial.html 参数需要一个正确的路径。
现在可以通过这个链接查询刚刚上传的文档:

Solr Cell 主要概念

在使用 Solr Cell 框架式,需要注意以下几个有用的点:
  • Tika 会自动尝试解析输入文档(Word、PDF、HTML)的类型,并正确的抽取文本。如果你愿意,你可以使用 St.rema.typ 参数给 Tika 明确设置一个 MIME 类型
  • Tika 运行时产生一个 XHTML 流提供给 SAX ContentHandler。SAX 是通用的 XML 解析器。
  • Solr 回应 Tika 的 SAX 事件,然后创建字段给索引库。
  • Tika 依照像 DubinCore 这样的规格,产生如标题、主题和作者这样的元数据
  • Tika 添加所有抽取出来的文本放入 content 字段
  • 可以把 Tika 的元数据字段和 Solr 的字段做映射,也可以设置这些字段的 boost。
  • 可以传递一些常量给字段的值
  • Tika 的 XTML 支持 XPath 表达式,可以通过表达式限制其内容的产生

Solr Cell

早先的 Solr 发行版可以很容易地索引已经存在的 XML 格式的文件,但是索引非 XML 数据,像 二级制文件或者 Office 文档,需要额外的处理。Solr 使用了 Apache Tika 来提供解析框架,该框架中整合了像 Apache PDFBox 和 Apache POI。使用了这个框架,Solr 的 ExtractingRequestHandler 可以使用 Tika 来支持二级制文件的上传,包括了常见的 Word 和 PDF 文件。

当这个框架在开发时,它叫 Solr 内容抽取库 (Solr Content Extraction Library or CEL),后来采用了缩写,取名为 Solr Cell。

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress   闽ICP备18020075号-1