今天一个朋友对有关lucene方面的话题和我进行讨论一下,由于这两个月也没怎么碰lucene,加上以前也没真正接触过,所以交流起来还是挺有收获的,刚才我也查了查lucene方面的资料,然后又和有过lucene经验方面的朋友进行询问,这家伙太懒了,这么早就睡了,天都还没亮呢!想起我那两个月加班这时候还没出公司呢!好了,进入正题
接触过lucene和做过lucene开发的人都知道,lucene仅是一个API,它的强大功能都得用写代码区实现,还记得当初做WEB开发的时候,JSP、SERVLET写了那么多,后来struts1一出来就爽多了,相信走过这条路的同志们都深有同感吧!我是从J2EE转到插件开发的,环境所逼啊!
那么Compass究竟是什么呢?我来回答大家吧:它是一套适用了Lucene的搜索引擎框架。那么它有什么好处呢?还是我来告诉大家吧,知道的就别嫌我啰嗦啊,它提供了一套开源的、高性能的、可灵活配置的搜索引擎,可以为用户的应用程序提供搜索功能,大家都知道,数据大多是存储在数据库中的,而且应用程序都是有业务的,做过开发的人都应该熟悉Hibernate、ibatis、spring、struts等框架吧,其实Compass也可以和它们很好的结合在一起进行开发。
下面我就给大家写段代码看看它是如何将Lucene封装的吧
CompassConfiguration config = new CompassConfiguration().configure();
Compass compass = config.buildCompass();
CompassSession session = compass.openSession();
CompassTransaction tx = null;
try{
tx = session.beginTransaction();
下面就是个实体类了我这随便写一写
People people = new People();
people.setSex("男");
people.setAge("20");
session.save(people);
tx.commit();
}catch(Exception e){
if(null != tx){
tx.rollback();
}
}finally{
session.close();
}
怎么样,大家是不是很熟悉呢?没错,这就类似于Hibernate中的往表中插入一条记录。很显然,Compass对搜索引擎后台的操作进行了封装。同时,在概念上,它将Lucene中的一个个Document更加实体化,使用一种与模型(Domain)做过GEF开发人应该对Domain比较熟悉,Editor中也是需要Domain的,那么Compass要用这些实体来干什么呢?原来它是将这些实体对象构建成对象,然后建立索引,然后用户只需要通过实体的属性区查找就行了,这样,对用户来说,Lucene的底层操作是透明的,就像你老婆叫你去买菜,你叫儿子去买菜,然后儿子买完菜把菜给你,你再去给你老婆,那么你叫你儿子去买菜就是透明的了(对于你老婆),那么Compass的开发者只需要定义那些实体的域模型以及整个compass运行的环境就行实现搜索引擎的功能了,就先介绍到这里吧,我还得去写写工作方面的东西,大家晚安
分享到:
相关推荐
一、Compass简介 Compass是一个开源项目,由Chris Eppstein开发,它的核心思想是提供一系列预先定义好的样式库和模块,如网格系统、按钮样式、图标集等,这些都可以直接在Sass中调用。Compass与Sass的结合,使得CSS...
1. **Compass简介** Compass是Java世界中的一款开源搜索引擎工具,它通过元数据映射(Metadata Mapping)机制将应用对象和Lucene索引关联起来,提供了一种透明的搜索支持。这使得开发人员无需深入了解Lucene的底层...
一、Compass简介 Compass的核心功能是提供了一个简单易用的API,使得开发者能够方便地在数据库中的对象上添加全文索引。它支持多种数据源,包括关系型数据库(如MySQL、Oracle)、文件系统以及内存。Compass利用...
**Compass简介** Compass是一个开源的、基于Apache Lucene的搜索引擎库,它提供了高级的搜索功能,并且能够与各种持久层框架无缝集成,如Hibernate、JPA和iBatis等。通过使用Compass,开发者可以轻松地在应用程序中...
#### 一、Compass简介 Compass是一个开源的.NET和Java框架,它为应用程序提供了完整的文本搜索功能。该框架支持多种搜索引擎(如Elasticsearch, Solr等),使得开发人员能够在不深入学习特定搜索引擎的情况下,轻松...
#### Compass简介 **Compass**是一个功能强大、高性能的对象/搜索引擎映射(OSEM)框架,它基于Java语言开发,提供了一个方便的方式来管理和查询索引数据。Compass的主要特点包括: - **搜索引擎抽象层**:提供了...
#### 二、Compass简介 Compass是一个基于SASS的CSS框架,它提供了一组丰富的工具和功能,可以帮助开发者更快捷地构建高质量的CSS样式表。Compass不仅仅是一个框架,还包含了一系列实用的混合器、组件和其他工具,如...
Compass简介** - Compass是基于Apache Lucene的全文搜索引擎,它扩展了Lucene的功能,增加了对持久化的支持,使得数据可以与搜索引擎索引同步。 **3. Compass与S2SH集成** - 配置Compass:首先需要在项目中引入...
1. COMPASS WELLPLAN FOR WINDOWS 功能简介:COMPASS 的核心功能包括 PLANNING(设计)、SURVEY(实测计算)和 ANTICOLLISION(防碰计算)。 2. COMPANY SETUP:公司设置允许用户为不同的公司设置基础参数,包括...
### Compass 使用详解 #### 一、Compass 概述 Compass 是一款开源的 Java 库,用于简化 Lucene 的使用。它通过提供类似于 Hibernate 的对象关系映射(ORM)功能,使得开发者能够更加轻松地将 Java 对象映射到 ...
#### 一、Sass简介 Sass(Syntactically Awesome Style Sheets)是一种预处理器脚本语言,用于扩展CSS的功能。它为CSS增加了诸如变量、嵌套规则、混合器(mixins)、继承、函数等功能,使开发者能够写出更加简洁、可...
**Sass与Compass简介** Sass(Syntactically Awesome Style Sheets)是一种CSS预处理器,它扩展了CSS的功能,提供了变量、嵌套规则、混合(mixin)、函数等高级特性,使得CSS编写更加简洁、模块化。Sass有两种语法...
一、RAID简介 RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)是一种通过将多个硬盘组合,实现数据冗余和性能提升的技术。最初由D.A.Patterson教授提出,目的是通过廉价磁盘的组合提供数据保护和...
甘特图简介 甘特图是一种常用的项目管理工具,它通过条形图来展示项目的任务进度,帮助项目管理者直观地了解项目进度、资源配置以及任务之间的依赖关系。甘特图通常包含以下要素: - **任务名称**:明确各个任务。 ...
1. `README.md`:这是一个Markdown格式的文件,通常会提供项目简介、安装步骤、使用示例以及开发者信息。 2. `package.json`:这是Node.js项目的核心配置文件,包含了项目依赖的npm模块及其版本信息。 3. `index.js`...
4. **关于我/关于我们**:这部分用于讲述个人背景、经历、团队成员或者企业简介。通过故事性的叙述,帮助访客建立对个人或品牌的认知和信任。 5. **联系**:联系页面通常包含联系方式(如电子邮件、电话、地址等)...
#### CSS与SASS简介 本书《Mastering SASS》旨在帮助读者深入了解SASS(Syntactically Awesome Style Sheets)及其相关工具Compass的使用方法,通过逐步介绍如何利用这些工具来提升CSS的编写效率和代码质量。SASS是...
AK8963是一款由Asahi Kasei Microdevices(AKM)公司生产的三轴地磁传感器,常用于智能手机和平板电脑等Android平台设备中,为设备提供指南针功能,帮助用户确定方向。这款传感器能够测量地球磁场的三个正交分量(X...
test.md :配置指南针的核心,包括简介和评估。 请参阅HOWTO.md (WIP)中的更多描述。 result.csv :候选者的数据集。 第一行包含字段名称(包括name和number ,它们是必填字段,以及与test.md的评估相对应的键。...
"Android系统下sensor驱动架构简介及使用说明" Android系统下的sensor驱动架构是指在Android操作系统中对各种sensor的驱动程序的架构设计和实现。该架构的主要目的是为了解决不同的sensor驱动程序的共性和差异问题...