首先是我的问题的一些背景.
问题涉及引入Lucene并执行仅返回匹配实体实例列表的搜索.然后我的代码需要逐个过滤实体.这种方法非常低效,因为存在这样的情况:用户可能只能看到少数人并且检查许多人返回少数不太理想.
开发人员如何解决这个问题的方法或方法 - 请记住使用Lucene执行索引和搜索?
编辑
定义
索引
安全检查
如果用户正在搜索sitecore存储桶,并且他们对存储桶中的所有项目没有读取权限,则在搜索时会出现问题.
例:
假设存储桶搜索中返回了1000个项目,并且用户只能读取其中的100个项目.最终发生的事情仍然是"你的搜索已经返回1000件物品".更糟糕的是,他们没有读取权限的所有项目仍然显示在列表中但是空白.
这造成了没有返回结果的错觉.实际上,当用户无法访问给定某个页面索引/大小的任何项目时.
有没有人以前遇到过这个问题?我猜测Sitecore正在对项目进行搜索后处理,导致在搜索中找到项目,但不显示.
我的想法:
我正在考虑的一个可能的解决方案是使用正确的Sitecore管道并调整Lucene HitCollector以验证用户安全性.如果我能找到正确的管道,这将解决问题,但我想知道是否有更好的方法?
我更愿意编写更具体的Sitecore存储桶代码.例如添加lucene查询术语的代码(搜索自定义角色字段或类似的东西),然后根据当前用户的角色将其自动添加到搜索中.