对于我们的应用程序,我们希望以某种方式使用应用程序(使用solr索引上载的数据)为每个用户隔离索引数据。那可能吗?
schema.xml和索引的所有文档的文档结构是相同的。出于安全原因,我们只想要隔离。
澄清:我忘了提到solr只能通过网络应用访问。最终用户永远不会直接连接到Solr。
答案 0 :(得分:2)
如果每个文档只能由少数用户访问,则可以保留允许访问该文档的多值用户ID allowed_user_ids
字段。然后通过user_id对其进行过滤查询以限制访问。
如果您同时拥有公共文档和受限文档,则可以保留字段is_public
,而不是将所有user_id存储在公共文档中,并仅将其设置为true。对于受限文档,请使用allowed_user_ids
上的过滤查询。
答案 1 :(得分:0)
您可以尝试使用Lucene的搜索空间过滤功能。它根据提供的标准限制可用于搜索的文档集。
标准可以用两种方式构建。
1)就像任何其他Lucene查询一样:Lucene Filtered Query
2)将文档集作为Filter
的实例传递给IndexSearcher