`

Compass学习之三:附带Library例子的分析(三)

阅读更多
2.2.1.2.5.1       加载配置文件,构建compass实例和Template

 

CompassConfiguration config = new CompassConfiguration().configure();

 

Compass中使用CompassConfiguration类来加载配置文件,通常配置文件都是放在src根目录,这样的话,直接调用configure()就可以得到该配置文件。

在这个library例子中compass.cfg.xml文件是放在其他包下,因此必须采用下面的方法来获取该配置文件。同时通过addClass()方法加载实体类。

 

CompassConfiguration config = new CompassConfiguration().configure("/org/compass/sample/library/compass.cfg.xml").addClass(Author.class).addClass(Article.class).addClass(Book.class);

//根据配置文件中的设置构建一个Compass实例

compass = config.buildCompass();

//删除老的索引,创建新索引

compass.getSearchEngineIndexManager().deleteIndex();

compass.getSearchEngineIndexManager().createIndex();

//定义一个compassTemplate

compassTemplate = new CompassTemplate(compass);

 

 

2.2.1.2.5.2       建立索引

 

setUpData()这个方法里面的内容就是compass建立索引的过程。

 

1、获取session,启用transaction

这跟hibernate一模一样。相信大家都明白里面的意思:)

CompassSession session = compass.openSession();

CompassTransaction tx = session.beginTransaction();

   

2、初始化索引实体。

   

    3、保存索引,提交事务和关闭session

    。。。

    session.save(实体);

    tx.commit();

session.close();

   

注:必须把所有的root级索引实体均save进去。

 

2.2.1.2.5.3       查询

 

1load()

testSetUpData()方法中:

Author author = (Author) session.load(Author.class, jackLondon.getId());

    load()的用法跟hibernateload()也是一样的。通过id来得到具体的实体对象。

2find()

    CompassSessionfind(),可以把一个关键字传到后台,并调用lucene来执行索引的搜索。这也跟hibernate中的用法类似,区别在于hibernate返回的是List类型的对象,而compass返回的是一个Compass Hits对象。

3Compass Hits

(因为javaeye的过滤原因,所以把Compass和Hits之间多加了一个空格!)

    Compass Hits是对Lucene中的Hits对象的一个封装。它提供了一些可以直接调用结果的方法:

1)、hits.length()    查询结果大小

2)、hits.data(int)

       hits.data(int)的参数表示取出当前结果集中的第几个结果。返回的结果是一个Object类型,可以获取指定实体类型:Author author = (Author)hits.data(0);

也可以获取root级标识接口:((Identifiable) hits.data(hitNumber)).getId()

3)、hits. resource(int)

返回的结果是一个Resource类型。可以获取其别名:resource.getAlias()

4)、hits.score(int)

       hits. score (int)返回得分。具体的评分规则暂未研究。

2.2.1.2.5.4       测试类运行后台打印

//加载compass系统配置文件

[INFO] CompassConfiguration - Configuring from resource [/org/compass/sample/library/compass.cfg.xml]

//加载compass通用元数据定义文件

[INFO] CompassConfiguration - Mapping resource [org/compass/sample/library/library.cmd.xml] in class loader

[INFO] DTDConfigurationBuilder - Configured Compass [default]

//加载索引实体映射文件

[INFO] CompassConfiguration - Mapping class [class org.compass.sample.library.Author]

[INFO] CompassConfiguration - Mapping class [class org.compass.sample.library.Article]

[INFO] CompassConfiguration - Mapping class [class org.compass.sample.library.Book]

[INFO] LuceneSearchEngineFactory - Not using highlighter - no highlighter jar included.

[INFO] LuceneSearchEngineOptimizerManager - Starting scheduled optimizer [class org.compass.core.lucene.engine.optimizer.AdaptiveOptimizer] with period [10000ms]

[INFO] DefaultLuceneSearchEngineIndexManager - Starting scheduled index manager with period [60000ms]

Found [3] hits for [jack] query

======================================================

ALIAS [book] ID [1] SCORE [0.49690697]

:::: White Fang

 

ALIAS [book] ID [2] SCORE [0.49690697]

:::: The Call of the Wild

 

ALIAS [author] ID [1] SCORE [0.43920785]

:::: Mr  Jack London

 

[INFO] DefaultCompass - Closing Compass [default]

[INFO] DefaultCompass - Closed Compass [default]

2.2.1.2 总结

待加

2.2.1.3 参考

1、《开发自己的搜索引擎 lucene2.0+Heritrix》邱哲、符滔滔编著

2、《ccompass-reference

分享到:
评论

相关推荐

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

    在实际应用中,我们可以按照以下步骤来使用Compass: 1. **安装与依赖**:将Compass库添加到项目中,根据所使用的ORM框架选择相应的版本。 2. **配置ORM集成**:配置Compass与ORM框架的连接,指定数据源和索引存储...

    Compass原理深入学习笔记

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

    Lucene+compass学习资料

    《深入探索Lucene+Compass技术与Ajax应用》 在当今的互联网开发中,数据检索和实时交互性已经成为不可或缺的功能。Lucene作为一个强大的全文搜索引擎库,为开发者提供了高效的文本搜索能力;Compass作为Lucene的一...

    compass2简单例子

    通过这个 "compass2简单例子",你可以学习如何创建一个新的 Compass 项目,编辑 `config.rb` 文件,编写 Sass 代码,然后使用 Compass 命令编译成 CSS。同时,你还可以看到 Compass 如何简化 CSS 开发,特别是通过其...

    Compass简单学习

    【标题】"Compass简单学习"所涉及的知识点主要集中在两个方面:一是对Compass工具的理解,二是如何使用Compass进行源码分析和开发辅助。Compass是一个强大的样式表(CSS)编译器,它基于Sass语言,帮助开发者更高效...

    compass学习笔记

    Compass概念: 1:Compass相当于hb的SessionFactory 2:CompassSession相当于hb的Session 3:CompassTransaction相当于hb的transaction。 <br>Compass也是采用CompassConfiguration(装载配置和映射文件...

    Compass技术文档

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

    compass 全文搜索

    5. **多语言支持**:Compass内置了多种语言的分词器和分析器,能有效处理不同语言的文本。 6. **缓存机制**:为了提高性能,Compass支持缓存策略,如结果集缓存、元数据缓存等。 7. **热部署**:在运行时,Compass...

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

    通过查阅这两个文件,你可以深入理解Lucene的索引和搜索机制,以及Compass是如何在Lucene之上提供更高级别的抽象和便利的。 总的来说,这个压缩包是一个全面的Compass和Lucene学习资源,不仅提供了实践项目,还有...

    Compass学习文档1

    Compass 是一个强大的开源搜索引擎框架,它建立在 Lucene 的基础之上,为 Java 开发者提供了更为简洁的搜索引擎 API。Compass 的设计目标是简化搜索引擎的集成,使其能够无缝地与现有的应用程序,如 Hibernate 和 ...

    compass完整可用项目

    3. **jar包**:项目依赖的各种库,包括Compass、Lucene、SSH框架和其他必需的第三方库。 4. **SQL脚本**:用于初始化数据库的脚本,可能是数据表结构或初始数据的导入。 5. **Web应用目录**:可能包含WEB-INF目录,...

    compass内部分享

    ### Compass与Lucene知识点详解 #### Lucene简介 **Lucene**是一款优秀的、成熟的、开源的、纯Java语言编写的全文检索工具包。它提供了一种高性能的方式来进行文本的索引和搜索,使得开发者能够在应用中轻松实现...

    指南针Compass

    虽然Compass主要用于Web开发,但考虑到跨平台的趋势,也可能有开发者尝试将其理念和方法应用到Android UI的设计中,通过自定义视图或第三方库实现类似的功能。 Compass的另一个重要特性是其对浏览器兼容性的处理。...

    compass_使用详解.pdf compass_教程 compass_试用案例

    #### 三、Compass 的使用步骤 Compass 的使用步骤与 Hibernate 非常类似,主要包括以下几个阶段: ##### 3.1 设计搜索实体 - **步骤**:创建一个 Java 类,定义其中包含的属性,例如 `Product` 类包含 `id`, `name...

    compass和wellplan学习总结.pdf

    Compass和WellPlan学习总结 Compass和WellPlan是油气行业中的两个重要工具,用于油气井的设计、规划和实施。下面是Compass和WellPlan学习总结的知识点: 1. 井设计基本概念:井设计是油气井的核心部分,涉及到井的...

    mongodb安装包和compass

    在Node.js学习过程中,MongoDB和Compass的结合使用可以帮助你更好地理解和操作数据库。通过Node.js的MongoDB驱动,你可以编写JavaScript代码来与MongoDB交互,创建和查询集合,执行CRUD(创建、读取、更新、删除)...

    windows版本 mongodb可视化管理mongodb-compass-1.43.0-win32-x64.exe

    mongodb可视化管理mongodb-compass-1.43.0-win32-x64.exe mongodb compass官网下载地址:https://www.mongodb.com/try/download/compass mongodb相关下载地址: mongodb社区版:...

    compass教程.pdf

    COMPASS 教程Pdf COMPASS 是一款专业的油气田设计和生产软件,主要用于油气田的规划、设计和生产过程。下面是 COMPASS 的一些重要知识点: 1. COMPASS WELLPLAN FOR WINDOWS 功能简介:COMPASS 的核心功能包括 ...

Global site tag (gtag.js) - Google Analytics