前言:因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官方的语言来说,Book和Author是root级的检索类,而Article是非root级的检索类。
2.2.1.2.3 检索类映射文件
序号
|
配置文件名
|
描述
|
备注
|
1
|
Book.cpm.xml
|
书
|
|
2
|
Article.cpm.xml
|
文章
|
|
3
|
Author.cpm.xml
|
作者
|
|
Compass的映射方式有以下三种:
1、RSEM(Resource/SearchEngine Mapping)
2、OSEM(Object/Search Engine Mapping)
3、XSEM(Xml/Search Engine Mapping)
本例中使用的是OSEM。具体的内容参见《compass-reference》。
分享到:
相关推荐
Compass全文检索系列之一:Compass入门 在IT领域,全文检索已经成为数据分析和信息检索的重要技术,尤其是在大数据时代。本文将介绍Compass,一个基于Lucene的全文搜索引擎库,为Java开发者提供了一种简单易用的...
【Compass原理深入学习笔记】 Compass是一款基于Apache Lucene的全文搜索引擎框架,它为开发者提供了更高级别的抽象层,简化了搜索引擎的集成工作。在理解Compass之前,我们需要先了解全文检索的基本概念和原理。 ...
【标题】"Compass简单学习"所涉及的知识点主要集中在两个方面:一是对Compass工具的理解,二是如何使用Compass进行源码分析和开发辅助。Compass是一个强大的样式表(CSS)编译器,它基于Sass语言,帮助开发者更高效...
标题 "compass2简单例子" 指向的是一个关于 Compass 的使用教程,Compass 是一个基于 Sass 的 CSS 预处理器。它简化了编写复杂的 CSS3 规则,并提供了易于管理的项目结构。这个简单的例子可能包括如何设置 Compass、...
Compass作为Lucene的一个高级封装,简化了在应用程序中集成搜索引擎的操作;而Ajax(Asynchronous JavaScript and XML)则通过异步通信提升了用户体验。本文将围绕这三个技术展开深入的探讨。 首先,我们来了解...
创建Compass时将会链接已经存在的索引或者创建一个新的索引。当Compass创建完后,就可以用compass得到compassSession。compassSession主要是起管理搜索引擎的数据。和hb的SessionFactory一样,compass通常在系统启动...
【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...
Compass全文搜索是一个基于Apache Lucene的高性能、易用的全文搜索引擎工具。Lucene是Java开发的开源库,它提供了文本分析、索引和搜索的基本功能。而Compass则在Lucene的基础上进行了封装,使得开发者可以更方便地...
Compass基于Lucene之上,类似于Hibernate之于JDBC的关系,提供了更高层次的封装,使得开发者能够更容易地集成搜索引擎到Java应用程序中。 - **OSEM**:OSEM (Object Search Engine Mapping) 是Compass提供的一个...
这个压缩包包含了一个完整的Compass工程,MySQL的建库SQL脚本,以及相关的学习资料,非常适合想要深入理解并学习这两项技术的初学者。 Compass是一个基于Apache Lucene构建的开源全文搜索引擎,它为Java应用程序...
Compass 是一个强大的开源搜索引擎框架,它建立在 Lucene 的基础之上,为 Java 开发者提供了更为简洁的搜索引擎 API。Compass 的设计目标是简化搜索引擎的集成,使其能够无缝地与现有的应用程序,如 Hibernate 和 ...
虽然Compass主要用于Web开发,但考虑到跨平台的趋势,也可能有开发者尝试将其理念和方法应用到Android UI的设计中,通过自定义视图或第三方库实现类似的功能。 Compass的另一个重要特性是其对浏览器兼容性的处理。...
标题中的“Lucene+compass+spring+jdbc+庖丁的一个例子”揭示了这是一个关于整合多个技术来构建一个搜索系统的示例。在这个系统中,我们有以下几个关键组件: 1. **Lucene**: Apache Lucene 是一个高性能、全文本...
Compass 是一个全文搜索引擎库,它是对 Lucene 的封装,为 Java 应用提供了一种简单易用的接口。在 Compass 中,Annotation 是一种元数据注解方式,它允许开发者在对象模型上直接定义搜索映射,使得对象与索引之间的...
9. Compass设计流程:Compass是油气井设计的流程之一,它包括井设计、井施工、井测试、井生产等阶段。Compass和WellPlan都支持Compass设计流程的实施和优化。 10. Compass和WellPlan的比较:Compass和WellPlan都是...
#### 三、Compass 的使用步骤 Compass 的使用步骤与 Hibernate 非常类似,主要包括以下几个阶段: ##### 3.1 设计搜索实体 - **步骤**:创建一个 Java 类,定义其中包含的属性,例如 `Product` 类包含 `id`, `name...
**Compass**是一个功能强大、高性能的对象/搜索引擎映射(OSEM)框架,它基于Java语言开发,提供了一个方便的方式来管理和查询索引数据。Compass的主要特点包括: - **搜索引擎抽象层**:提供了一套统一的接口来...
MongoDB Compass是MongoDB官方提供的一款图形化管理工具,它为MongoDB数据库的使用者提供了直观的界面,方便进行数据浏览、查询、操作以及性能分析。MongoDB Compass 1.15.1是这个系列的一个版本,它无需安装,可以...