【发布时间】:2010-06-12 17:47:14
【问题描述】:
有没有办法存储有关存储在 Lucene 中的文档的信息,这样我就不必更新整个文档来更新有关文档的某些属性?
例如,假设我有一堆文档,并且我想更新一个权限列表,其中列出了哪些人可以每天或更频繁地查看这些文档。是否可以每天更新所有权限,而无需更新所有文档。我可以通过准确保留添加和删除的权限来做到这一点,但我宁愿能够获取权限的最终列表并使用它,而不是必须跟踪所有权限更改并发布那些整个文档到 Lucene。
【问题讨论】:
有没有办法存储有关存储在 Lucene 中的文档的信息,这样我就不必更新整个文档来更新有关文档的某些属性?
例如,假设我有一堆文档,并且我想更新一个权限列表,其中列出了哪些人可以每天或更频繁地查看这些文档。是否可以每天更新所有权限,而无需更新所有文档。我可以通过准确保留添加和删除的权限来做到这一点,但我宁愿能够获取权限的最终列表并使用它,而不是必须跟踪所有权限更改并发布那些整个文档到 Lucene。
【问题讨论】:
未实现更新单个字段,请参阅this related question。我同意 Karussell 关于不在 Solr 中存储权限的观点,这似乎更像是 RDBMS 的工作。请记住,Lucene 索引实际上是扁平结构。
【讨论】:
我认为,您将不得不更新整个文档,而不仅仅是属性/字段。
对于您的问题,我不会将权限内容存储到 lucene/solr 中。我会使用数据库来检查用户是否能够查看文档。例如。将角色“admin”、“default”和/或“anonymous”添加到多值字段“role”中的每个文档,然后例如如果用户以管理员身份登录,则按“管理员”角色过滤所有查询。
【讨论】: