我正在尝试进行设置(在我的本地环境中),以便我可以将 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 元素中的属性“required”的值更改为 false,我会得到:
FATAL: Solr returned an error #400 Document is missing mandatory uniqueKey field: id
我认为,如果架构中元素的 required 属性为 false,那么我可以只发送不包含该字段的文件,但显然情况并非如此。
我还尝试在发送该 pdf 的命令中添加参数-Dparams=literal.id=mypdf1但这也无济于事。有什么想法吗?