使用Solr 4,可以对索引中的现有文档进行原子(部分)更新.即,可以匹配文档ID并替换仅一个字段的内容,或者将更多条目添加到多值字段:http://wiki.apache.org/solr/Atomic_Updates
可以从DataImportHandler(DIH)完成原子更新吗?
使用Solr的3.6和ExtractionRequestHandler(又名提卡),是有可能映射只是文本内容(的PDF)的场减去元数据?不幸的是,由Tika产生的"内容"字段包含与文档的文本内容一起存在的所有元数据.
我想提供一些内容的片段突出显示,内容字段中的主题元数据正在扭曲突出显示结果.
更新:由Solr索引的Tika输出的屏幕截图.突出显示的部分是元数据块,它作为文本块添加到PDF内容之前.
solrconfig.xml中的ExtractingRequestHandler:
<requestHandler name="/update/extract" startup="lazy" class="solr.extraction.ExtractingRequestHandler">
<lst name="defaults">
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
</lst>
</requestHandler>
Run Code Online (Sandbox Code Playgroud)
Schema.xml字段.注意"内容"直接接收Tika的内容输出.当doc发布到处理程序时,"page"和"collection"字段使用文字值设置.
<field name="id" type="string" indexed="true" stored="true" required="true"/>
<field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="subject" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="content" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="collection" type="text_general" indexed="true" stored="true"/>
<field name="page" type="tint" indexed="true" stored="true"/>
<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/>
Run Code Online (Sandbox Code Playgroud)