`

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

阅读更多

前言:因javaeye的每页显示有限制,所以只能分成3页来发布了。

2.2.1 Library的分析

顾名思义,Library例子主要展现的是图书馆中的图书信息的检索。

2.2.1.1 项目文件基本构成

序号

文件类型

文件列表

备注

1

Compass的配置文件

compass.cfg.xml

 

2

检索类

Article.java

Author.java

Book.java

 

3

检索类映射文件

Article.cpm.xml

Author.cpm.xml

Book.cpm.xml

 

4

通用元数据定义文件

Library.cmd.xml

 

5

测试类

LibraryTests.java

 

6

其他类

Name.java

Identifiable.java

Name作为Author的辅助类。

Identifiable提供一个getId()方法。作为root级的检索类必须实现的接口。

2.2.1.2 项目文件分析

2.2.1.2.1        Compass的配置文件

Compass的配置文件是compass.cfg.xml。对于熟悉hibernate的人来说,compass的配置文件的组成结构极为熟悉,简直跟hibernate的配置文件是双胞胎。

以下是Library的配置内容:

 

 <compass>   

    //表示索引的路径:\library\target\index\

    <setting name="compass.engine.connection">target/index</setting>

//通用的元数据定义文件。

    <meta-data resource="org/compass/sample/library/library.cmd.xml" />   </compass>

2.2.1.2.2        检索

序号

类名

描述

备注

1

Book

实现Identifiable接口

2

Article

文章

 

3

Author

作者

实现Identifiable接口

   

    3个检索类中,两个都实现了Identifiable接口。该接口很简单:

public interface Identifiable {

    Long getId();

}

    这说明了什么呢?

    有了Id,即有一个证明,能被单独搜索到。Article是不应该被独立搜索到的,当系统检索到一个Article的时候,被返回的总是与之相关的Author对象,而非Article对象本身。这一点在实体的配置文件中得以充分体现。

    Compass官方的语言来说,BookAuthorroot级的检索类,而Article是非root级的检索类。

2.2.1.2.3        检索类映射文件

序号

配置文件名

描述

备注

1

Book.cpm.xml

 

2

Article.cpm.xml

文章

 

3

Author.cpm.xml

作者

 

 

     Compass的映射方式有以下三种:

        1RSEMResource/SearchEngine Mapping

2OSEM(Object/Search Engine Mapping)

3XSEM(Xml/Search Engine Mapping)

本例中使用的是OSEM。具体的内容参见《compass-reference》。

5
0
分享到:
评论

相关推荐

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

    Compass全文检索系列之一:Compass入门 在IT领域,全文检索已经成为数据分析和信息检索的重要技术,尤其是在大数据时代。本文将介绍Compass,一个基于Lucene的全文搜索引擎库,为Java开发者提供了一种简单易用的...

    Compass原理深入学习笔记

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

    Compass简单学习

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

    compass2简单例子

    标题 "compass2简单例子" 指向的是一个关于 Compass 的使用教程,Compass 是一个基于 Sass 的 CSS 预处理器。它简化了编写复杂的 CSS3 规则,并提供了易于管理的项目结构。这个简单的例子可能包括如何设置 Compass、...

    Lucene+compass学习资料

    Compass作为Lucene的一个高级封装,简化了在应用程序中集成搜索引擎的操作;而Ajax(Asynchronous JavaScript and XML)则通过异步通信提升了用户体验。本文将围绕这三个技术展开深入的探讨。 首先,我们来了解...

    compass学习笔记

    创建Compass时将会链接已经存在的索引或者创建一个新的索引。当Compass创建完后,就可以用compass得到compassSession。compassSession主要是起管理搜索引擎的数据。和hb的SessionFactory一样,compass通常在系统启动...

    compass完整可用项目

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

    compass 全文搜索

    Compass全文搜索是一个基于Apache Lucene的高性能、易用的全文搜索引擎工具。Lucene是Java开发的开源库,它提供了文本分析、索引和搜索的基本功能。而Compass则在Lucene的基础上进行了封装,使得开发者可以更方便地...

    Compass技术文档

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

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

    这个压缩包包含了一个完整的Compass工程,MySQL的建库SQL脚本,以及相关的学习资料,非常适合想要深入理解并学习这两项技术的初学者。 Compass是一个基于Apache Lucene构建的开源全文搜索引擎,它为Java应用程序...

    Compass学习文档1

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

    指南针Compass

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

    Lucene+compass+spring+jdbc+庖丁的一个例子

    标题中的“Lucene+compass+spring+jdbc+庖丁的一个例子”揭示了这是一个关于整合多个技术来构建一个搜索系统的示例。在这个系统中,我们有以下几个关键组件: 1. **Lucene**: Apache Lucene 是一个高性能、全文本...

    compass annotation关联关系

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

    compass和wellplan学习总结.pdf

    9. Compass设计流程:Compass是油气井设计的流程之一,它包括井设计、井施工、井测试、井生产等阶段。Compass和WellPlan都支持Compass设计流程的实施和优化。 10. Compass和WellPlan的比较:Compass和WellPlan都是...

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

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

    compass内部分享

    **Compass**是一个功能强大、高性能的对象/搜索引擎映射(OSEM)框架,它基于Java语言开发,提供了一个方便的方式来管理和查询索引数据。Compass的主要特点包括: - **搜索引擎抽象层**:提供了一套统一的接口来...

    mongodb compass1.15.1官网版 免安装直接使用

    MongoDB Compass是MongoDB官方提供的一款图形化管理工具,它为MongoDB数据库的使用者提供了直观的界面,方便进行数据浏览、查询、操作以及性能分析。MongoDB Compass 1.15.1是这个系列的一个版本,它无需安装,可以...

Global site tag (gtag.js) - Google Analytics