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万条了,不知大家有何好的解决办法?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值