[英]Storing PDFs in Solr
我正在尝试在本地环境中进行设置,以便可以将PDF存储在Solr中,但无法使其正常工作。 现在,我正在使用Solr提供的示例文件夹中的文件。
我没有在solr-3.6.0 / example / conf中修改solrconfig.xml,因为它似乎已经按照“ 提取请求处理程序”中所述进行了配置。 也就是说,它已经包含以下内容:
<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 ,但这无济于事。 有什么想法吗?
我相信我的困惑是由于您需要为要发送到Solr的文档提供一个ID,同时在Solr-3.6.0 / example / solr / conf / 模式中还有一个id元素。 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的全部内容建立索引,则需要添加uprefix和fmap.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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.