【问题标题】:Storing PDFs in Solr在 Solr 中存储 PDF
【发布时间】:2012-08-31 01:19:56
【问题描述】:

我正在尝试设置(在我的本地环境中),以便我可以将 PDF 存储在 Solr 中,但我无法让它工作。现在我正在处理 Solr 提供的示例文件夹中的文件。

我没有修改 solr-3.6.0/example/conf 中的 solrconfig.xml,因为它似乎已经按照Extracting Request Handler 中的描述进行了配置。也就是说,它已经包含了这个:

<lib dir="../../dist/" regex="apache-solr-cell-\d.*\.jar" />
<lib dir="../../contrib/extraction/lib" regex=".*\.jar" />

还有这个:

<requestHandler name="/update/extract" 
              startup="lazy"
              class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
  <str name="fmap.content">text</str>
  <str name="lowernames">true</str>
  <str name="uprefix">ignored_</str>
  <str name="captureAttr">true</str>
  <str name="fmap.a">links</str>
  <str name="fmap.div">ignored_</str>
</lst>

我正在使用以下命令从示例目录运行 Solr:

java -jar start.jar 

我正在尝试使用以下命令将 pdf 发送到 Solr:

java -Durl=http://localhost:8983/solr/update/extract -Dauto -jar /Applications/Solr-3.6.0/example/exampledocs/post.jar /path/to/pdf/mypdf.pdf

如果我不对 /Solr-3.6.0/example/solr/conf/schema.xml 进行任何更改,我会收到以下消息:

FATAL: Solr returned an error #400 [doc=null] missing required field: id

如果我将 schema.xml 中 id 元素中“必需”属性的值更改为 false,我会得到:

FATAL: Solr returned an error #400 Document is missing mandatory uniqueKey field: id

我认为,如果架构中元素的必需属性为 false,那么我可以发送不包含该字段的文件,但显然情况并非如此。

我还尝试在发送该 pdf 的命令中添加参数 -Dparams=literal.id=mypdf1 ,但这也无济于事。有什么想法吗?

【问题讨论】:

  • 你试过删除-Dauto吗?
  • 我做到了(这就是我最初的方式)。它没有帮助。
  • 您是否尝试过将参数添加到 url,例如 '.../extract?literal.id=mypdf1'?
  • 成功了!非常感谢您,零页。我不明白为什么这有效而 -Dparams=literal.id=form1 无效(它在文档中),但至少我可以继续工作。再次感谢。

标签: java solr apache-tika


【解决方案1】:

我相信我的困惑是由于您需要为发送给 Solr 的文档提供一个 id,同时在 Solr-3.6.0/example/solr/conf 中有一个 id 元素/schema.xml

我相信我遇到的第一个错误是指架构中的 id 元素。第二个错误是指文档 ID。

在 ZeroPage 的帮助下,我也能够克服第二个错误,方法是将文档 ID 添加到 url,而不是将其作为单独的参数传递。这个查询现在对我有用:

java -Durl=http://localhost:8983/solr/update/extract?literal.id=form1 -jar /Applications/Solr-3.6.0/example/exampledocs/post.jar /path/to/pdf/form1.pdf 

如果我们希望 Solr 索引 PDF 的完整内容,我们需要添加 uprefixfmap.content 属性:

java -Durl="http://localhost:8983/solr/update/extract?literal.id=form1&uprefix=attr_&fmap.content=attr_content&commit=true" -jar /Applications/Solr-3.6.0/example/exampledocs/post.jar /path/to/pdf/form1.pdf

【讨论】:

    猜你喜欢
    • 2014-02-24
    • 1970-01-01
    • 2015-09-06
    • 2016-01-18
    • 2018-09-15
    • 1970-01-01
    • 2016-05-22
    • 2018-12-25
    • 2014-04-12
    相关资源
    最近更新 更多