16

谁能给我指个教程。

我使用 Solr 的主要经验是索引 CSV 文件。但是我找不到任何简单的说明/教程来告诉我索引 pdf 需要做什么。

我见过这个:http ://wiki.apache.org/solr/ExtractingRequestHandler

但这对我来说意义不大。我需要安装 Tika 吗?

我迷路了-请帮忙

4

6 回答 6

18

使用 solr-4.9(截至目前的最新版本),从 pdf、电子表格(xls、xlxs 系列)、演示文稿(ppt、ppts)、文档(doc、txt 等)等丰富的文档中提取数据变得相当简单。从此处下载的存档中提供的示例代码示例 包含一个基本的 solr 模板项目,可帮助您快速入门。

必要的配置更改如下:

  1. 更改solrConfig.xml以包括以下行:

    <lib dir="<path_to_extraction_libs>" regex=".*\.jar" /> <lib dir="<path_to_solr_cell_jar>" regex="solr-cell-\d.*\.jar" />

创建一个请求处理程序,如下所示:

<requestHandler name="/update/extract" startup="lazy" class="solr.extraction.ExtractingRequestHandler" > <lst name="defaults" /> </requestHandler>

2.将 solrExample 中的必要 jar 添加到您的项目中。

3.根据您的需要定义架构并触发如下查询:

curl "http://localhost:8983/solr/collection1/update/extract?literal.id=1&literal.filename=testDocToExtractFrom.txt&literal.created_at=2014-07-22+09:50:12.234&commit=true" -F "myfile=@testDocToExtractFrom.txt"

转到 GUI 门户并查询以查看索引内容。

如果您遇到任何问题,请告诉我。

于 2014-08-19T13:32:58.487 回答
4

您可以使用 dataImportHandler。DataImortHandle 将在 solrconfig.xml 中定义,DataImportHandler 的配置应在不同的 XML 配置文件(data-config.xml)中实现

对于索引pdf,您可以

1.) 使用FileListEntityProcessor抓取目录以查找所有 pdf

2.) 使用XPathEntityProcessor从“内容/索引”-XML 文件中读取 pdf

如果您有相关 pdf 的列表,请使用 TikaEntityProcessor 查看此http://solr.pl/en/2011/04/04/indexing-files-like-doc-pdf-solr-and-tika-integration/ ( ppt 示例)和这个Solr :数据导入处理程序和 solr 单元

于 2011-07-15T07:59:42.180 回答
2

其中最难的部分是从 PDF 中获取元数据,使用像Aperture这样的工具可以简化这一点。必须有成吨的这些工具

Aperture 是一个 Java 框架,用于从 PDF 文件中提取和查询全文内容和元数据

Apeture 从 PDF 中获取元数据并将其存储在 xml 文件中。

我使用 lxml 解析了 xml 文件并将它们发布到 solr

于 2011-08-04T08:43:14.183 回答
0

使用 Solr、ExtractingRequestHandler。这使用 Apache-Tika 来解析 pdf 文件。我相信它可以提取元数据等。您也可以通过自己的元数据。 提取请求处理程序

于 2014-06-02T19:57:41.877 回答
0
public class SolrCellRequestDemo {
public static void main (String[] args) throws IOException, SolrServerException {
SolrClient client = new
HttpSolrClient.Builder("http://localhost:8983/solr/my_collection").build();
ContentStreamUpdateRequest req = new
ContentStreamUpdateRequest("/update/extract");
req.addFile(new File("my-file.pdf"));
req.setParam(ExtractingParams.EXTRACT_ONLY, "true");
NamedList<Object> result = client.request(req);
System.out.println("Result: " +enter code here result);
}

这可能会有所帮助。

于 2016-12-10T17:33:38.813 回答
0

Apache Solr 现在可以索引所有类型的二进制文件,如 PDF、Words 等...查看此文档:
https ://lucene.apache.org/solr/guide/8_5/uploading-data-with-solr-cell-使用-apache-tika.html

于 2020-05-06T21:32:56.770 回答