0

对于我们的应用程序,我们希望以某种方式为使用该应用程序的每个用户分离索引数据(它使用 solr 来索引上传的数据)。那可能吗?

所有被索引文档的 schema.xml 和文档结构都是相同的。出于安全原因,我们只想隔离。

澄清:我忘了提到 solr 只能由网络应用程序访问。最终用户从不直接连接到 Solr。

4

2 回答 2

2

如果每个文档只能由少数用户访问,您可以保留一个多值字段,allowed_user_ids其中包含允许访问该文档的用户 ID。然后通过 user_id 对其进行过滤查询以限制访问。

如果您同时拥有公共文档和受限文档,那么您可以保留一个字段is_public并将其设置为仅针对公共文档,而不是将所有 user_id 存储在公共文档中。对于受限制的文档,请在 上使用过滤器查询allowed_user_ids

于 2013-03-27T00:15:08.347 回答
0

您可以尝试使用 Lucene 的搜索空间过滤器功能。它根据提供的条件限制可用于搜索查询的文档集。

可以通过两种方式构建标准。

1) 就像任何其他 Lucene 查询一样:Lucene Filtered Query

2) 将文档集作为Filter的实例传递给 IndexSearcher

于 2013-03-27T03:42:30.980 回答