`
yuhaibo6646737
  • 浏览: 16408 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Compass应用学习之创建索引库与查询索引

阅读更多
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原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为开发者提供了更高级别的抽象层,简化了搜索引擎的集成工作。在理解Compass之前,我们需要先了解全文检索的基本概念和原理。 ...

    Lucene+compass学习资料

    在学习Lucene时,重点应掌握如何创建索引、执行查询以及优化搜索性能。 接着,我们转向Compass。Compass是一个基于Lucene的全文搜索引擎框架,它将Lucene的功能与对象关系映射(ORM)框架相结合,如Hibernate和JPA...

    compass索引插件demo

    Compass是基于Java的一个全文搜索引擎库,它为Java应用程序提供了与Lucene搜索引擎库的无缝集成。在SSH(Spring、Struts和Hibernate)框架中集成Compass插件,可以帮助开发者轻松实现数据的全文检索功能,提高应用的...

    基于Compass2.2与Spring 结合建立索引的实例

    2. **配置Spring**:创建Spring配置文件,配置Compass相关的bean,包括索引管理器(IndexManager)、查询执行器(QueryExecutor)等。 3. **实现服务层**:创建服务层接口及其实现类,利用Spring的注入机制注入...

    Compass全文检索系列之一:Compass入门

    1. **ORM集成**:Compass可以与流行的ORM框架如Hibernate、JPA、iBatis等进行集成,自动将数据库中的对象创建成索引,无需手动处理索引的创建和维护。 2. **动态索引更新**:当数据库中的数据发生变化时,Compass...

    完整compass工程+建库sql+学习资料

    通常,Compass会将索引存储在数据库中,这使得索引能够与持久化的数据保持同步,并且可以利用数据库的事务管理能力。运行这个脚本后,你将得到一个适配Compass的数据库环境,可以用于测试和学习。 `compass`可能是...

    compass搜索引擎技术

    Compass在其之上添加了ORM支持,可以自动跟踪和更新数据对象的索引。这使得开发者无需关心索引的创建和维护,只需关注业务逻辑即可。 2. **集成Eclipse** 在Eclipse环境中开发Compass项目,首先需要安装相应的插件...

    使用compass+lucene实现简单的全文检索功能

    3. **创建索引**:使用 Compass 提供的 API 创建索引。这通常涉及读取数据源中的信息,然后通过 Compass 将每个文档的关键信息转换为 Lucene 可理解的格式并建立索引。索引过程可以配置为实时、批量或定期执行。 4....

    Compass与ssh框架整合

    3. **创建索引**:使用Compass的API,根据业务需求选择何时创建或更新索引。这通常在数据插入、更新或删除时触发,确保搜索引擎中的数据与实际数据库保持同步。 4. **检索数据**:通过Compass的查询API执行全文搜索...

    Compass与Struts2SpringHibernate的整合示例

    5. 创建索引:在应用启动时,通过Compass API创建或更新索引。 6. 在Struts2中使用:编写一个Action或Interceptor,处理搜索请求,通过Compass查询接口进行全文检索,并将结果返回给视图。 7. 整合测试:确保在...

    Compass.rar

    1. **源代码**:包含了使用Compass进行搜索功能的Java代码,可能包括索引创建、查询执行等逻辑。 2. **配置文件**:可能包含Compass的配置XML,定义了搜索引擎的设置,如索引的位置、分析器的选择等。 3. **测试用例...

    ssh+compass实现站内搜索分页.rar

    Compass是一个基于Lucene的全文搜索引擎库,它简化了在Java应用中集成全文检索的功能。本教程将重点讲解如何使用SSH框架与Compass结合,实现在网站内的搜索分页功能。 首先,让我们深入了解SSH框架的每个组件: 1....

    compass完整可用项目

    【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...

    compass 全文搜索

    2. **实时索引**:当数据库中的数据发生变化时,Compass能够自动或手动更新相关的索引,保持搜索结果与数据库内容同步。 3. **高级查询API**:Compass提供了一套高级的查询API,包括布尔查询、短语查询、模糊查询、...

    Compass 的java代码

    在Java应用中集成搜索引擎功能时,Compass提供了一种简化的方式来管理和操作Lucene索引。通过Compass,你可以将对象-关系映射(ORM)与全文检索完美结合,使得数据库中的数据能够被快速高效地搜索。 **Compass的...

    compass annotation关联关系

    Compass 是一个全文搜索引擎库,它是对 Lucene 的封装,为 Java 应用提供了一种简单易用的接口。在 Compass 中,Annotation 是一种元数据注解方式,它允许开发者在对象模型上直接定义搜索映射,使得对象与索引之间的...

    Compass技术文档

    Compass基于Lucene之上,类似于Hibernate之于JDBC的关系,提供了更高层次的封装,使得开发者能够更容易地集成搜索引擎到Java应用程序中。 - **OSEM**:OSEM (Object Search Engine Mapping) 是Compass提供的一个...

    mongodb安装包和compass

    通过Node.js的MongoDB驱动,你可以编写JavaScript代码来与MongoDB交互,创建和查询集合,执行CRUD(创建、读取、更新、删除)操作。而Compass则提供了直观的视图,让你可以看到这些操作在数据库中的实际效果。 总之...

    compass-2.2.0.zip

    1. **搜索引擎API**:Compass提供了一个简单易用的API,使得开发者可以方便地进行索引创建、查询、更新和删除等操作。这个API比直接使用Lucene的API更加直观,减少了编写搜索引擎代码的工作量。 2. **对象-搜索引擎...

    简单的compass示例源码

    在这个示例中,开发者可能找到了与Compass集成的Java类,这些类展示了如何配置Compass、创建索引以及执行搜索操作。 `.settings`目录包含项目的特定构建设置和属性,这些设置可能与Eclipse插件或特定的构建过程有关...

Global site tag (gtag.js) - Google Analytics