【问题标题】:Can I store and join based on external attributes in Lucene/Solr我可以根据 Lucene/Solr 中的外部属性存储和加入吗
【发布时间】:2010-06-12 17:47:14
【问题描述】:

有没有办法存储有关存储在 Lucene 中的文档的信息,这样我就不必更新整个文档来更新有关文档的某些属性?

例如,假设我有一堆文档,并且我想更新一个权限列表,其中列出了哪些人可以每天或更频繁地查看这些文档。是否可以每天更新所有权限,而无需更新所有文档。我可以通过准确保留添加和删除的权限来做到这一点,但我宁愿能够获取权限的最终列表并使用它,而不是必须跟踪所有权限更改并发布那些整个文档到 Lucene。

【问题讨论】:

    标签: indexing lucene solr


    【解决方案1】:

    未实现更新单个字段,请参阅this related question。我同意 Karussell 关于不在 Solr 中存储权限的观点,这似乎更像是 RDBMS 的工作。请记住,Lucene 索引实际上是扁平结构。

    【讨论】:

      【解决方案2】:

      我认为,您将不得不更新整个文档,而不仅仅是属性/字段。

      对于您的问题,我不会将权限内容存储到 lucene/solr 中。我会使用数据库来检查用户是否能够查看文档。例如。将角色“admin”、“default”和/或“anonymous”添加到多值字段“role”中的每个文档,然后例如如果用户以管理员身份登录,则按“管理员”角色过滤所有查询。

      【讨论】:

      • 这确实不是最佳选择,因为我希望能够返回单页结果以及考虑到权限的总计数。使用这种方法实际上是不可能的,并且需要在客户端上进行大量的额外处理。如果我有 1000 个匹配项,我将不得不解析那个大型 XML 响应,将结果发送到数据库并在那里进行连接以获得最终的过滤列表。
      • 我不明白你的问题。我的意思是,您可以使用用户角色将 filterQuery 添加到 lucene/solr。这样您就不需要对“大型 xml”进行后处理
      猜你喜欢
      • 1970-01-01
      • 2021-11-11
      • 1970-01-01
      • 2011-02-12
      • 2020-04-21
      • 2011-10-12
      • 2011-01-08
      • 2017-09-06
      相关资源
      最近更新 更多