lucene搜索和权限怎么结合呢?

现有一已有的CMS系统,希望在原来的关键词搜索基础上加上全文检索。
该CMS系统原有的权限设计是这样的:有一个cms_info表,我们假设其中最有用的是id,keywords,content 3个字段,字段见名知意,另外还有一个cms_acl表,其中最有用的字段是refid,visit 2个字段,refid是cms_info的id字段外键,visit是访问类型,具体解释一下visit:该CMS系统中的授权对象比较复杂,有用户,岗位,部门,岗位组,等等,分别建在不同的表里面,如果visit里面有U131,意思就是id为131这个用户可以访问文档,同样G表示岗位组,P表示岗位,D表示部门,同样visit里面可能存在G22等值。
如果我们要实现关键字查询,可以如下:
select a.id from cms_info a,cms_acl b where a.id = b.refid and a.keywords like ? and b.visit in (...)
其中b.visit in (...)的...是通过一个登录用户的查询到他所属的岗位,部门,岗位组,得到的一个串。这样也可以实现sql的分页。
现在客户希望对content(如果同时也对keywords)进行全文检索,我用的compass+lucene,现在只能做到把所有的都查出来,只是用户在点链接看具体内容时候提示他没有相应的权限。现在用户希望在全文检索时候就像关键词检索一样,没有权限的就不要列出来。我想总不能全部列出来后再来个filter吧,现在总文章也有5,6万条了,不知大家有何好的解决办法?

你可能感兴趣的:(数据结构,cms,Web,Lucene,全文检索)