想象一下全文搜索的这个简单场景:带评论的文章。我也想通过评论中的文字搜索文章。仅此一项就相当容易实现。
但并非所有评论都对所有用户可见。撰写评论的用户还可以限制其对具体角色的可见性(因此评论有 2 个字段:文本和角色)。
是否可以限制对文章的 lucene 搜索,使其仅在当前用户可见的评论中查找(comment.role 在当前用户的角色集中)?
如果是这样,请指出正确的方向,我应该如何着手编写这样的查询(最好)或 lucene 过滤器。
(我正在通过 hibernate-search 使用 lucene,但应该没什么区别)
最佳答案
根据docs ,您可以将您感兴趣的角色作为查询中的另一个字段。在您的示例中,这样的事情应该有效:
text:"user query" AND role:"userRole"
关于java - Lucene 和访问控制(评论的可见性),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1093817/