Solr索引文件目录从数据库添加文件权限

时间:2013-07-23 17:47:09

标签: wordpress solr

我正在使用Solr来索引pdf和word文件的目录。我希望Solr搜索这些文件,但只返回基于登录用户权限的结果。是否可以索引文件目录以及查询包含文件权限的数据库,并将数据作为xml实体添加到索引中,并对这些结果执行过滤查询?

我使用WordPress作为CMS系统,其文件管理插件名为Filebase。文件库与目录同步,以将文档上载到站点。我已将Solr配置为索引包含文档的文件库目录。 Filebase具有我在每个文件上设置的权限。

我的想法是,如果我可以在索引中存储文件的最小用户级别位置整数,那么我可以执行过滤查询,只显示用户级别为“x”的结果。

我希望这是有道理的。

1 个答案:

答案 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的权限字段发送部分更新。

当您发送部分更新时,后台实际发生的事情是:

  • 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/