1. 创建索引
/**
* 模拟数据库中取出一条记录后创建索引库
*/
@Test
public void createIndex() {
Article article = new Article();
article.setId(2l);
article.setTitle("compass对lucene搜索的包装试验");
article.setContent("本例对compass包装后的lucene的功能进行测试,从而试验常用compass的方法");
article.setPostTime(new Date());
CompassSession ss = null;
ss = CompassUtils.getCompass().openSession();//开启compass会话
CompassTransaction tx = null;
try {
tx = ss.beginTransaction();//开启事务
ss.create(article);//创建索引的compass核心代码
tx.commit();//提交事务
} catch (CompassException e) {
if (tx != null) {// 注意一定要判断
tx.rollback();// 回滚事务
}
} finally {
if (ss!=null) {
ss.close();
}
}
}
2. 搜索
/**
* 检索索引库后输出匹配的总记录数及所有文档内容
*/
@Test
public void search(){
CompassSession ss = null; //compass会话
ss = CompassUtils.getCompass().openSession();//
CompassTransaction tx = null;//compass事务
List<Article> articles=new ArrayList<Article>();//匹配结果集
try {
CompassHits hits=ss.find("compass");//compass检索核心语句
int count =hits.length();//匹配的总记录数
System.out.println("匹配的总记录数为"+count);
for (int i = 0; i < count; i++) {
Article art=(Article) hits.data(i);//取出真实的文档内容
articles.add(art);//每一条记录添加到集合中
}
for (Article art : articles) {
System.out.println("id--->"+art.getId());
System.out.println("title--->"+art.getTitle());
System.out.println("content--->"+art.getContent());
System.out.println("postTime--->"+DateTools.dateToString(art.getPostTime(), Resolution.SECOND));//转换日期为精确到DAY/SECOND的字符串
}
} catch (CompassException e) {
e.printStackTrace();
} finally {
if (ss!=null) {
ss.close();
}
}
}
}
//DateTools日期工具类可以实现日期到字符串的相互转换(可精确到某天/时/秒)
分享到:
相关推荐
【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为开发者提供了更高级别的抽象层,简化了搜索引擎的集成工作。在理解Compass之前,我们需要先了解全文检索的基本概念和原理。 ...
在学习Lucene时,重点应掌握如何创建索引、执行查询以及优化搜索性能。 接着,我们转向Compass。Compass是一个基于Lucene的全文搜索引擎框架,它将Lucene的功能与对象关系映射(ORM)框架相结合,如Hibernate和JPA...
Compass是基于Java的一个全文搜索引擎库,它为Java应用程序提供了与Lucene搜索引擎库的无缝集成。在SSH(Spring、Struts和Hibernate)框架中集成Compass插件,可以帮助开发者轻松实现数据的全文检索功能,提高应用的...
2. **配置Spring**:创建Spring配置文件,配置Compass相关的bean,包括索引管理器(IndexManager)、查询执行器(QueryExecutor)等。 3. **实现服务层**:创建服务层接口及其实现类,利用Spring的注入机制注入...
1. **ORM集成**:Compass可以与流行的ORM框架如Hibernate、JPA、iBatis等进行集成,自动将数据库中的对象创建成索引,无需手动处理索引的创建和维护。 2. **动态索引更新**:当数据库中的数据发生变化时,Compass...
通常,Compass会将索引存储在数据库中,这使得索引能够与持久化的数据保持同步,并且可以利用数据库的事务管理能力。运行这个脚本后,你将得到一个适配Compass的数据库环境,可以用于测试和学习。 `compass`可能是...
Compass在其之上添加了ORM支持,可以自动跟踪和更新数据对象的索引。这使得开发者无需关心索引的创建和维护,只需关注业务逻辑即可。 2. **集成Eclipse** 在Eclipse环境中开发Compass项目,首先需要安装相应的插件...
3. **创建索引**:使用 Compass 提供的 API 创建索引。这通常涉及读取数据源中的信息,然后通过 Compass 将每个文档的关键信息转换为 Lucene 可理解的格式并建立索引。索引过程可以配置为实时、批量或定期执行。 4....
3. **创建索引**:使用Compass的API,根据业务需求选择何时创建或更新索引。这通常在数据插入、更新或删除时触发,确保搜索引擎中的数据与实际数据库保持同步。 4. **检索数据**:通过Compass的查询API执行全文搜索...
5. 创建索引:在应用启动时,通过Compass API创建或更新索引。 6. 在Struts2中使用:编写一个Action或Interceptor,处理搜索请求,通过Compass查询接口进行全文检索,并将结果返回给视图。 7. 整合测试:确保在...
1. **源代码**:包含了使用Compass进行搜索功能的Java代码,可能包括索引创建、查询执行等逻辑。 2. **配置文件**:可能包含Compass的配置XML,定义了搜索引擎的设置,如索引的位置、分析器的选择等。 3. **测试用例...
Compass是一个基于Lucene的全文搜索引擎库,它简化了在Java应用中集成全文检索的功能。本教程将重点讲解如何使用SSH框架与Compass结合,实现在网站内的搜索分页功能。 首先,让我们深入了解SSH框架的每个组件: 1....
【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...
2. **实时索引**:当数据库中的数据发生变化时,Compass能够自动或手动更新相关的索引,保持搜索结果与数据库内容同步。 3. **高级查询API**:Compass提供了一套高级的查询API,包括布尔查询、短语查询、模糊查询、...
在Java应用中集成搜索引擎功能时,Compass提供了一种简化的方式来管理和操作Lucene索引。通过Compass,你可以将对象-关系映射(ORM)与全文检索完美结合,使得数据库中的数据能够被快速高效地搜索。 **Compass的...
Compass 是一个全文搜索引擎库,它是对 Lucene 的封装,为 Java 应用提供了一种简单易用的接口。在 Compass 中,Annotation 是一种元数据注解方式,它允许开发者在对象模型上直接定义搜索映射,使得对象与索引之间的...
Compass基于Lucene之上,类似于Hibernate之于JDBC的关系,提供了更高层次的封装,使得开发者能够更容易地集成搜索引擎到Java应用程序中。 - **OSEM**:OSEM (Object Search Engine Mapping) 是Compass提供的一个...
通过Node.js的MongoDB驱动,你可以编写JavaScript代码来与MongoDB交互,创建和查询集合,执行CRUD(创建、读取、更新、删除)操作。而Compass则提供了直观的视图,让你可以看到这些操作在数据库中的实际效果。 总之...
1. **搜索引擎API**:Compass提供了一个简单易用的API,使得开发者可以方便地进行索引创建、查询、更新和删除等操作。这个API比直接使用Lucene的API更加直观,减少了编写搜索引擎代码的工作量。 2. **对象-搜索引擎...
在这个示例中,开发者可能找到了与Compass集成的Java类,这些类展示了如何配置Compass、创建索引以及执行搜索操作。 `.settings`目录包含项目的特定构建设置和属性,这些设置可能与Eclipse插件或特定的构建过程有关...