是的,如果您使用的是 Solr 4+,您可以将部分更新推送到 Solr 索引。
架构
对于部分更新,您的 schema.xml 中的所有字段都需要存储。
这就是你的字段部分在 schema.xml 中的样子:
<fields>
<field name="id" type="string" indexed="true" stored="true" required="true" />
<field name="title" type="text_general" indexed="true" stored="true"/>
<field name="description" type="text_general" indexed="true" stored="true" />
<field name="body" type="text_general" indexed="true" stored="true"/>
<field name="permission" type="integer" indexed="true" stored="true" />
</fields>
索引:
您可以首先将所有文档(pdf 和 word 的目录)索引到您的索引中。
然后,您可以将部分更新发送到特定 ID 的权限字段。
当您发送部分更新时,后台实际发生的是:
- Solr 将获取该文档的所有其他字段的值,例如标题、描述、正文
- 删除旧文档
- 将新更新的文档推送到 Solr 索引,包含所有现有字段以及新的权限字段
假设您要为 id=document_1 的文档设置权限=5,您的查询应如下所示:
localhost:8080/solr/update?commit=true' -H 'Content-type:application/json' -d '[{"id":"document_1","permission":{"set":5}}]
这是关于部分更新的好文档:http: //solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/