`
apollo7733
  • 浏览: 3533 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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万条了,不知大家有何好的解决办法?
分享到:
评论
4 楼 transist 2007-06-25  
有些系统的权限是比较复杂的,跟业务很相关,所以写在索引并不是好方法,并且权限结构复杂一些的话,更新权限数据时同步索引中的权限数据可能不是一件愉快的事情。
3 楼 yfmine 2007-06-22  
把每篇文章的权限写入索引,查询时根据当前用户权限构建query不就可以了吗
2 楼 kimfly 2007-06-22  
解决了吗?也遇到了这个问题。
1 楼 transist 2007-03-01  
我采用这种方法,大家探讨一下。
在web页面分页有startIndex,pageSize,不妨称为web_startIndex和web_pageSize。根据条件从lucene检索出符合的记录总数,查找的纪录总数(当然这个纪录总数对特定的用户来说不一定有权限查看全部,不过个人认为可以解释为系统中符合条件的有那么多)。
然后分页检索lucene,有lucene_startIndex,lucene_pageSize两个参数,建议lucene_pageSize取为web_pageSize的n倍,这样的lucene_pageSize的lucene纪录经过权限过滤后一般情况下应该大于web_pageSize。从lucene检索回的分页记录经过权限过滤后,如果纪录数小于web_pageSize,则再向lucene取回下一页数据;若大于web_pageSize,则记录到实际使用的条目,把这个作为下一页的lucene_startIndex。
以上不是描述得不是很好,分页的逻辑稍微复杂一些。


另外有个问题请熟悉compass的人帮忙确认一下,compass在索引后是否在缓存中存放被索引的对象,该对象什么时候被从缓存清除。如果我使用compass做索引,而用lucene的API做检索,是否需要在compass做索引时清除被索引的对象?

相关推荐

    基于Lucene的搜索引擎

    总的来说,基于Lucene的财经类搜索引擎是一个复杂而实用的系统,它将先进的信息检索技术应用于金融领域的信息检索,提升了数据的可获取性和分析效率。对于开发者来说,理解并掌握Lucene的原理和实践,对提升自身在...

    Lucene 7.1 RMI远程搜索例子

    总的来说,Lucene 7.1 RMI远程搜索例子展示了如何将强大的Lucene搜索引擎与Java的RMI技术结合,构建一个可扩展、健壮的分布式搜索系统。通过理解和实践这一例子,开发者可以进一步提升其在分布式全文检索领域的技能...

    weblucene安装文档

    WebLucene是一款开源的、基于Java开发的全文搜索引擎,它为Web应用提供了强大的搜索功能。在本安装文档中,我们将详细介绍如何一步步地安装并配置WebLucene,以便于你能够快速地将它集成到你的项目中。 首先,我们...

    解密搜索引擎技术实战Lucene&Java精华版(2)

    解密搜索引擎技术实战Lucene&Java精华版(第3版)源码 书名:解密搜索引擎技术实战Lucene&Java精华版(第3版) 作者:罗刚 等编著 出版社:电子工业出版社 关键词:Lucene solr 搜索引擎 Lucene实战 随书源码 本书随...

    解密搜索引擎技术实战Lucene&Java精华版(第3版)源码

    解密搜索引擎技术实战Lucene&Java精华版(第3版)源码 书名:解密搜索引擎技术实战Lucene&Java精华版(第3版) 作者:罗刚 等编著 出版社:电子工业出版社 关键词:Lucene solr 搜索引擎 Lucene实战 随书源码 本书随...

    最新版windows lucene-8.5.1.zip

    Lucene 8.5.1是Lucene项目的一个重要里程碑,它引入了多项优化和改进,包括更快的搜索速度、更高的索引效率以及对新特性的支持。这个版本修复了之前版本中的一些已知问题,提高了系统的稳定性和可靠性,为开发者提供...

    lucene实战 cms

    通过这个实战项目,你不仅能深入理解Lucene搜索引擎的工作原理,还能掌握前端框架ExtJS和Groovy脚本的使用技巧,以及如何在没有现成框架的情况下,手动构建MVC架构的系统。这将是你提升IT技能,特别是搜索引擎开发...

    java权限框架_ssh+shiro+jbpm4.4+lucene+easyui

    Apache Lucene是Java的全文搜索引擎库,提供了高效的索引和搜索功能。在本项目中,可能用于实现对用户、角色、权限等信息的快速检索,提升系统的查询效率和用户体验。 【EasyUI前端框架】 EasyUI是一个基于jQuery的...

    lucene.net 打造全文搜索引擎

    在实际应用中,Lucene.NET还可以与其他技术结合,例如NLP(自然语言处理)库用于提高搜索准确性,或者数据库连接库用于获取和处理原始数据。同时,开发者还需要考虑如何处理用户界面、权限控制、多线程安全等问题,...

    解密搜索引擎技术实战Lucene&Java精华版(第3版)源码(4)-补第6章

    解密搜索引擎技术实战Lucene&Java精华版(第3版)源码 书名:解密搜索引擎技术实战Lucene&Java精华版(第3版) 作者:罗刚 等编著 出版社:电子工业出版社 关键词:Lucene solr 搜索引擎 Lucene实战 随书源码 本书随...

    搜索开发lucene

    同时,了解并熟悉 Lucene 的各个核心包,如 org.apache.lucene.index、org.apache.lucene.search 等,对于构建和优化搜索应用至关重要。 总的来说,Lucene 是一个强大且灵活的全文检索引擎,开发者可以基于它构建...

    struts2+ibitas+spring+lucene 整合

    Lucene 是Apache软件基金会的一个全文检索库,它是Java开发的,提供了文本分析、索引和搜索功能。Lucene能快速地对大量数据进行全文搜索,适用于构建搜索引擎或在Web应用中添加搜索功能。 在这个"struts2+ibatis+...

    毕业设计-java(结合lucene)版的公交搜索系统-javaso项目源码

    本项目是一个基于Java技术,并结合了Lucene搜索引擎的公交搜索系统。这个系统旨在提供一个高效、准确的公交线路查询服务,使用户能够快速找到最佳的公交出行路线。下面将详细介绍这个项目的相关知识点。 首先,Java...

    SSM框架构建积分系统和基本商品检索系统(Spring+SpringMVC+MyBatis+Lucene+Redis+MAVEN)

    此外,系统可能还涉及权限控制、异常处理、日志记录等其他方面,这些都需要开发者根据实际需求进行细致的设计和实现。在开发过程中,遵循良好的编程规范和设计模式,可以使代码更易于维护和扩展,确保项目的可持续...

    Lucene项目(华电内部文档搜索系统)

    - **权限控制**: 结合权限管理框架,如Spring Security,实现用户对文档的访问控制。 - **集群部署**: 当文档数量巨大时,可以考虑使用分布式搜索方案,如Solr或Elasticsearch,以提升系统的扩展性和稳定性。 总之...

    基于lucene的文件管理系统(完善版,含jar包)

    Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,它提供了索引和搜索大量文本数据的能力。在这个基于Lucene的文件管理系统中,我们利用Lucene的强大功能来组织、管理和检索文件,极大地提高了工作效率。...

    lucene web

    由于提供的信息有限,这个"Lucene Web"实例可能没有涵盖所有这些方面,但它提醒我们,在实际项目中,将强大的Lucene搜索引擎与Web应用结合是一项复杂而有价值的工作。对于学习和研究,可以参考现有的开源项目或官方...

    Android系统基于Lucene的SD卡 搜索

    总的来说,基于Lucene的Android SD卡全文搜索是一个涉及文件系统操作、文本处理、索引构建和查询执行的综合任务,对于提升用户体验具有重要意义。通过合理的架构设计和优化,可以在Android设备上实现高效且用户友好...

Global site tag (gtag.js) - Google Analytics