我正在使用 Solr 6.2.1 和ExtractingRequestHandler(已包含在Solr 6.2.1中)来索引pdf和word文档。所有文档(pdf和word)都使用元数据(标题,日期,cp_revision,compagny,...)编制索引,但内容字段始终为空。
根据documentation,我应该有一个非空的内容字段:“Tika将所有提取的文本添加到内容字段中。”
有人知道为什么内容字段为空?根据这个post answer,这可能是因为我以非二进制模式打开我的文件但是如何以二进制模式进行?
这是我的 solrconfig.xml 文件:
<lib dir="${solr.install.dir:../../../..}/contrib/extraction/lib" regex=".*\.jar" />
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-cell-\d.*\.jar" />
...
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="xpath">/xhtml:html/xhtml:body/descendant:node()</str>
<str name="capture">content</str>
<str name="fmap.meta">attr_meta_</str>
<str name="uprefix">attr_</str>
<str name="lowernames">true</str>
</lst>
</requestHandler>
答案 0 :(得分:0)
尝试使用 examples / files 中的文件示例进行索引,它旨在解析富文本格式。如果可行,您可以找出定义中出现的问题。我怀疑xpath参数可能是错误的,只返回空内容。
答案 1 :(得分:0)
我使用solr:alpine Docker图像并遇到了同样的问题。事实证明“内容”字段已映射到Solr的“文本”字段,该字段已编制索引但默认情况下未存储。看看Curl中的“fmap.content = doc_content”是否有效。
答案 2 :(得分:0)
我遇到了类似的问题,并通过将/ update / extracthandler请求处理程序设置为此进行修复:
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="lowernames">true</str>
<str name="fmap.meta">ignored_</str>
<str name="fmap.content">content</str>
<str name="update.chain">uuid</str>
</lst>
关键部分是内容,它将Tika获得的内容映射到您的“内容”字段,该字段必须在您的架构中定义,可能定义为storage = true