Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在具有关联角色的文档中搜索_C#_Sql Server_Search_Solr_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,C#,Sql Server,Search,Solr,elasticsearch" /> elasticsearch,C#,Sql Server,Search,Solr,elasticsearch" />

C# 在具有关联角色的文档中搜索

C# 在具有关联角色的文档中搜索,c#,sql-server,search,solr,elasticsearch,C#,Sql Server,Search,Solr,elasticsearch,我有一个巨大的文本文档数据库(sql server)(到目前为止大约500GB)。我对它们进行全文搜索 为此,我想使用solr/elastic搜索 但是,文本文档与组织中的角色相关联,即:经理文档或老板文档。人们的角色也会时不时地发生变化 为此目的编写sql查询没有问题 我想不出在Solr/elastic搜索中也能做到这一点 你将如何解决这个问题 关于这个主题有一篇很好的博文。它展示了如何实现PostFilter接口,在这里,您可以执行Java提供的任何操作来检查文档是否被访问。这适用于某些远程

我有一个巨大的文本文档数据库(sql server)(到目前为止大约500GB)。我对它们进行全文搜索

为此,我想使用solr/elastic搜索

但是,文本文档与组织中的角色相关联,即:经理文档或老板文档。人们的角色也会时不时地发生变化

为此目的编写sql查询没有问题

我想不出在Solr/elastic搜索中也能做到这一点


你将如何解决这个问题

关于这个主题有一篇很好的博文。它展示了如何实现PostFilter接口,在这里,您可以执行Java提供的任何操作来检查文档是否被访问。这适用于某些远程系统保存访问信息的情况,如公司LDAP


但正如作者所指出的

需要注意的是,PostFilter是实现文档过滤的最后手段。不要让解决方案变得比需要的更复杂。通常情况下,甚至访问控制过滤也可以使用普通的ol搜索技术来实现,方法是将允许的用户和组索引到文档上,并使用lucene(或其他)查询解析器来实现。只有当规则太复杂或需要外部信息时,自定义后过滤器才有意义

这意味着:是否可以向保存访问信息的文档中添加字段?差不多


然后在搜索时,可以添加到查询中

q=some+cool+query&fq=owner:username+OR+team:user's team name+OR+role:role1