我正在使用Solr来索引pdf和word文件的目录。我希望Solr搜索这些文件,但只返回基于登录用户权限的结果。是否可以索引文件目录以及查询包含文件权限的数据库,并将数据作为xml实体添加到索引中,并对这些结果执行过滤查询?
我使用WordPress作为CMS系统,其文件管理插件名为Filebase。文件库与目录同步,以将文档上载到站点。我已将Solr配置为索引包含文档的文件库目录。 Filebase具有我在每个文件上设置的权限。
我的想法是,如果我可以在索引中存储文件的最小用户级别位置整数,那么我可以执行过滤查询,只显示用户级别为“x”的结果。
我希望这是有道理的。
答案 0 :(得分:0)
是的,如果您使用的是Solr 4+,则可以将部分更新推送到Solr索引。
<强> SCHEMA 强>
对于部分更新,需要存储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的权限字段发送部分更新。
当您发送部分更新时,后台实际发生的事情是:
假设您要为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/