首页 文章

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

提问于
浏览
0

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

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

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

我希望这是有道理的 .

1 回答

  • 0

    是的,如果您使用的是Solr 4,则可以将部分更新推送到Solr索引 .

    SCHEMA

    部分更新, all fields in your schema.xml need to be stored .

    这是您的fields部分在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>
    

    INDEXING:

    您可以首先将所有文档(pdf和word的目录)索引到索引 .

    然后,您可以对特定ID的权限字段发送部分更新 .

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

    • Solr将获取该文档的所有其他字段的值,例如 Headers ,描述,正文

    • 删除旧文件

    • 将新的更新文档推送到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/

相关问题