已加入
Opensymphony的
Compass 是对
Lucene搜索引擎在企业应用(数据库应用)中的增强。 Lucene本身的API已经非常简单,看看IBM DW上的
Beef up Web search apps with Lucene已经大概了解,那Compass还能做什么样的增强呢?
1.在我的项目里,最实际的增强就是Data Mirror功能。
DataMirror会把数据库的增删改变化实时映射到索引文件中。如果你采用Hibernate等ORM方案,你只须在POJO中进行annotation注释,Compass就会与Hibernate的event机制结合,或者使用AOP的方式,自动在数据库增删改时变更索引;如果你只是采用JDBC,也可以在XML文件配置Table Mapping或ResultSet Mapping,指定version列,Compasss定时进行索引更新。而且,Compass还支持事务,在查询数据库遍历结果集的过程中如果出现异常,会在Index Segments 文件一级进行事务控制。
如果没有Compass,我们一般会在每天深夜重建一次索引。相比Compass的做法,
一来反应迟缓,平均延时半天;
二来效率没有Compass高。如果采用完全重建索引,效率就不用说了。如果进行增量索引,就要增加一个字段,在数据更新时进行特殊的处理,删除时也不能直接删除数据,要等lucene删完索引它才能删除,这样Lucene对应用就非常不透明了。
三来不支持事务,如果建立索引过程中出现异常,索引文件的状态是不可控的。
2.Compass对查询的API也作了一定简化,可以考虑使用。
详见参考文档 10.5 Searching, 简单直接用session find,如
Compass hits = session.find( " name:jack " );
加入排序,改分词Analyzer,用QueryBuilder()
Compass hits = session.createQueryBuilder()
.queryString( " +name:jack +familyName:london " )
.setAnalyzer( " an1 " ) // use a different analyzer
.toQuery()
.addSort( " familyName " , CompassQuery.SortPropertyType.STRING)
.hits();
3. Compass的其他功能,用不用的上要看缘份了:
将Lucene的索引文件放入数据库或内存。
对索引文件根据不同的主题分开subIndex。
对XML数据进行映射和索引....
4.一段Pragmatic的Compass 搜索程序是这样写的:
1.用annotation将pojo映射为searchable。(详细请看参考文档,如果没有JDK5,可以参考XML式的配置)
public class Product {
@SearchableId
private Integer id;
private String name;
@SearchableProperty(name = " name " )
public String getName() {
return this .name;
}
}
2.用Compass提供的Spring2 Schema 来配置Compass与Hibernate,Spring的结合。
SchemaBase的配置是Spring 2.0的新特征,相比原来的配置代码要少一些。
3.编写搜索结果显示页,将Hits,Command,Page三个变量显示出来。
Compass的代码重用已经到了Controller一级,只要给Controller 配上compass bean和结果显示的jsp就可以了。Controller提供足够的配置参数,使它完全可以被配置重用,这是个值得SpringSide学习的地方。
即使你的web应用不是采用Spring MVC,如果没有大规模改写的需求,也可以直接使用,让Struts与Spring MVC并存。
5.Controller默认的查询需要扩展时
Contrller默认的查询是在所有fileld里查询关键字,如果需要限定field,加入排序,加入and ,exclude,模糊查询等就不适用了。高级搜索页一般会提供比较多的过滤条件输入框让用户输入,然后在Controller对这些输入条件进行重新组合。
组合的方式既可以按Lucene的Query语法进行拼SQL式的组合,最后得到"+name:jack -familyName:london" 这样的句子。
也可以用类似Hibernate Criteria API的方式,如:
Compass hits = session.createQueryBuilder().bool()
.addMust( queryBuilder.term( " name " , " jack " ) )
.addMustNot( queryBuilder.term( " familyName " , " london " ) )
.toQuery() .hits();
因此,如果你的Lucene应用是面向数据库的,就不妨用一下Compass。
Compass另一个让我学习的地方是它充分考虑用户客户化的需要,enough thing can be configure ,从而连Controller也可以重用的做法。
分享到:
相关推荐
mongodb-windows安装包: mongodb-compass-1.31.2-win32-x64.msi 打开直接安装
mongodb可视化管理mongodb-compass-1.43.0-win32-x64.exe mongodb compass官网下载地址:https://www.mongodb.com/try/download/compass mongodb相关下载地址: mongodb社区版:...
MongoDB Compass是MongoDB公司开发的一款强大的图形用户界面(GUI)工具,专为MongoDB数据库管理系统设计。这个工具的主要目标是简化数据库的管理和操作,使非技术用户也能轻松理解和探索数据。"mongodb-compass-...
使用compass+lucene实现简单的全文检索功能 里面整合了spring2.5、hibernate3.2、struts2.0,是对数据库进行全文检索的一个非常好的demo的所有jar包组合! 对研究基于数据库检索的java开源搜索引擎的朋友有很大的...
总结来说,MongoDB是一个强大的NoSQL数据库,MongoDB Compass是其配套的可视化工具,而这个压缩包则提供了在Windows平台上运行MongoDB Compass社区版所需的所有组件。通过这些工具,用户可以更有效地管理和利用...
mongodb-compass-1.42.1-win32-x64.exe 数据库构建工具
mongodb-compass-community-1.21.2-win32-x64.exe mongodb-compass-community-1.21.2-win32-x64.exe mongodb-compass-community-1.21.2-win32-x64.exe mongodb-compass-community-1.21.2-win32-x64.exe
在这个版本"mongodb官方客户端可视化工具compass-1.26.1-win32-x64"中,我们关注的是Windows 32位和64位系统的版本。 Compass的主要功能包括: 1. 数据浏览:它允许用户以表格、图表或者JSON格式查看和编辑数据,...
mongodb-compass-community-1.18.0-win32-x64.msi
Compass Mixins 是一个非常重要的前端开发工具,尤其在 Sass(Syntactically Awesome Style Sheets)环境中,它极大地提升了CSS编写效率和代码复用性。这个开源库为开发者提供了丰富的预定义混合(mixins),帮助...
总的来说,"mongodb-compass-1.23.0-win32-x64.zip" 提供了一个直观的MongoDB管理工具,通过图形界面帮助用户更轻松地管理MongoDB数据库,同时包含了必要的依赖文件以确保其在Windows系统上的正常运行。
最新版mongodb-compass-1.16.3-win32-x64
Compass需要的包3:compass-core.jar
Compass 2.2.0 是一个开源的Java搜索引擎框架,它的出现是为了简化与Apache Lucene的交互,为开发者提供了一种更为高级和抽象的API。Lucene是Apache软件基金会的一个项目,它是一个高性能、全文本搜索库,但是直接...
在这个压缩包中,"所用lucene包"很可能包含了与 Compass 2.1.4 版本兼容的 Lucene 版本,可能是为了确保 Compass 正常运行所需的依赖。 中文分词器是处理中文文本的关键组件,因为中文不像英文那样有明显的空格分隔...
在Android平台上,开发一款自定义指南针应用是一个有趣且实用的任务。"Compass-master.zip"提供的资源正是这样一个项目,它不仅能够准确地指示方向,还具备显示气压和海拔高度的功能,这对于户外爱好者或者需要导航...
这个是mongodb-compass的1.23最新版本。花了我好长时间才下载完。各位请给我个赞 这个是mongodb-compass的1.23最新版本。花了我好长时间才下载完。各位请给我个赞 这个是mongodb-compass的1.23最新版本。花了我好长...
mongodb-compass-1.13.1-win32-x64.exe 作为mongodb管理工具的安装包,对于管理mongodb很方便实用
《Compass-GPS-ArcGIS在林业...综上所述,Compass-GPS-ArcGIS技术对林业生产产生了深远影响,它优化了林业资源管理,提升了工作效率,增强了林业生产的法制化和规范化,为林业经济的健康发展提供了强有力的技术支持。