使用此命令
curl '://localhost:8983/solr/update/extract?literal.id=doc1&commit=true' -F "myfile=@maven_tutorial.pdf"
我们可以通过在solr中指定我们自己的id(DOC1)来索引单个pdf文件。但我想将许多pdf文件索引到同时解决所有问题。让solr自动跟踪id。
请帮帮我。
答案 0 :(得分:1)
您可以使用UUID类型字段作为唯一键。 首先定义UUID字段类型
<fieldType name="uuid" class="solr.UUIDField" indexed="true" />
在schema.xml中添加您的id字段
<field name="id" type="uuid" indexed="true" stored="true" multiValued="false"/>
将此字段设为唯一键
<uniqueKey>id</uniqueKey>
在solrconfig.xml中更新自动生成id
的链<updateRequestProcessorChain name="uuid">
<updateRequestProcessorChain name="uuid">
<processor class="solr.UUIDUpdateProcessorFactory">
<str name="fieldName">id</str>
</processor>
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
现在将此更新链附加到请求处理程序,该处理程序从您提交给solr的pdf文件中提取内容。
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<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>
<str name="update.chain">uuid</str>
</lst>