azure - 使用Lucene索引私有(private)数据,我应该为每个用户建立一个单独的索引还是单个索引

标签 azure lucene

我正在开发一个基于 Azure 的网站,我想使用 Lucene 提供搜索功能。 (结构化 json 对象将被索引并存储在 Lucene 中,其他内容(例如 Word 文档等)将在 lucene 中索引但存储在 blob 存储中)我希望搜索是安全的,这样一个用户永远不会看到属于该文档的文档给另一个用户。我想允许用户输入的即席搜索。最后,我想以编程方式查询以返回预定义的数据集,例如“用户 X 的所有注释”。我想我了解如何向每个文档添加属性来实现这 3 个目标。 (我将它们列在这里,这样如果有人愿意回答,他们就会更好地了解我正在尝试做什么)

我的问题围绕性能和安全性。

我可以通过为每个用户建立单独的索引来提高文档安全性吗?或者在每个搜索中包含用户 ID 作为参数就足够了吗?

我可以通过为每个用户建立单独的索引来提高索引速度和系统的总吞吐量吗?我的想法是,拥有单独的索引将允许我通过让多个索引编写器(甚至可能在不同的服务器实例上)同时工作来扩展系统,每个索引编写器都有自己的索引。

任何见解将不胜感激。

问候,

内特

最佳答案

当然是一个索引。 通过使用 ManifoldCF(知道如何处理 Solr 的 Apache 产品)来管理安全性,您甚至可以做得比您建议的更好。

还有一个离题的、不知情的建议:我宁愿使用 CloudBees 或 Heroku(或 Amazon)而不是 Azure。

关于azure - 使用Lucene索引私有(private)数据,我应该为每个用户建立一个单独的索引还是单个索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11164597/

相关文章:

asp.net - Windows Azure 中的滑动过期

sql-server-2008 - Windows Azure 模拟器需要不断重置

elasticsearch - 在 elasticsearch 中使用同义词

sql-server - Lucene 和 SQL Server - 最佳实践

mysql - 如何从 Azure MySQL DB 中两个不同数据库中的两个不同表进行批量更新?

c# - Azure Web PubSub 和事件网格/事件中心之间有什么区别?

azure - "az ad app permission add ..."的地形等效项是什么?

ruby - 使用 Lucene Parser 和 Solr 使用 Sunspot 进行多字段搜索

solr - Solr 添加和 Solr 提交之间的区别

lucene - 在 Solr 中使用 Nutch 爬虫