`
jingfengluo
  • 浏览: 45548 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Compass配置说明及注意事项

阅读更多
   Compass是建立在Lucene基础之上的一款开放源码的JAVA搜索引擎框架。关于Compass的介绍在此我不多讲了,更多了解请直接参考http://www.opensymphony.com/compass<o:p></o:p>

    很多看了Compass的人多少对Compass的配置文件都有点云里雾里的感觉(我最开始也如此:P)。由于Compass有很多地方都借鉴了Hibernate的思想,在此我结合Hibernate中的思想来帮助我们对Compass的配置文件进行理解。<o:p></o:p>

    Hibernate是一个O/R Mapping工具,它可以将实体对象和数据库中的表进行映射。最终通过访问实体对象来达到访问数据库的目的。<o:p></o:p>

    Compass是一个搜索引擎框架,它可以将common meta data与实体对象进行映射。最终通过访问common meta data来达到访问对象的目的。<o:p></o:p>

    综上所述,Hibernate是对象到数据库。而Compasscommon meta data 到对象。<o:p></o:p>

<o:p> </o:p>

Compass的配置文件主要分成三类:<o:p></o:p>

    第一类:*.cmd.xml文件<o:p></o:p>

    *.cmd.xml文件是对common meta data进行定义,我们就可以把它是当作Hibernate中的POJO来理解。里面定义了最终搜索的结果中的最基本的元数据。下面是一个*.cmd.xml文件的片断:<o:p></o:p>

<compass-core-meta-data><o:p></o:p>

    <meta-data-group id="petclinic" displayName="Petclinic Meta Data">    <o:p></o:p>

        <description>Petclinic Meta Data</description> <o:p></o:p>

        <uri>http://compass/sample/petclinic</uri>        <o:p></o:p>

        <alias id="vet" displayName="Vet"><o:p></o:p>

            <description>Vet alias</description><o:p></o:p>

            <uri>http://compass/sample/petclinic/alias/vet</uri><o:p></o:p>

            <name>vet</name><o:p></o:p>

        </alias><o:p></o:p>

       …………<o:p></o:p>

        <meta-data id="petType" displayName="Pet Type"><o:p></o:p>

            <description>The type of a pet</description><o:p></o:p>

            <uri>http://compass/sample/petclinic/petType</uri><o:p></o:p>

            <name>petType</name><o:p></o:p>

        </meta-data> <o:p></o:p>

    </meta-data-group><o:p></o:p>

</compass-core-meta-data>   <o:p></o:p>

在这里<o:p></o:p>

<meta-data-group id="petclinic" displayName="Petclinic Meta Data">  当作是POJOpackage来理解,petclinic可以看成是package name<o:p></o:p>

<alias id="vet" displayName="Vet"> 当作是POJOClass来理解,vet 可以看成是class name<o:p></o:p>

<meta-data id="petType" displayName="Pet Type">当作是POJOproperty来理解,petType可以看成是property name

上面xml中所定义的meta data 和alias就是compass需要查询的所有的基本元素组件。

然而common meta data的定义与POJO所不同的是:POJO是用java代码来体现,而common meta data使用xml来体现。POJOclass中定义了propertycommon meta data中的aliasmeta-data是分开定义。<o:p></o:p>

当然上面都是一个类比而已, 其目的是为了便于让我们理解,实际生成的代码并非如上所述的一一对应。compass提供了一个ant task可以将common meta data生成一个class。代码片断如下:<o:p></o:p>

public final class Petclinic {<o:p></o:p>

    /**<o:p></o:p>

     * Petclinic Meta Data<o:p></o:p>

     */<o:p></o:p>

    public static final class Group {<o:p></o:p>

       public static final String Id = "petclinic";<o:p></o:p>

       public static final String DispayName = "Petclinic Meta Data";<o:p></o:p>

       public static final String Uri = "http://compass/sample/petclinic";<o:p></o:p>

    }<o:p></o:p>

    public static final class Alias {<o:p></o:p>

       /**<o:p></o:p>

        * Owner alias<o:p></o:p>

        */<o:p></o:p>

       public static final class Owner {<o:p></o:p>

           public static final String Id = "owner";<o:p></o:p>

           public static final String Name = "owner";<o:p></o:p>

           public static final String DisplayName = "Owner";<o:p></o:p>

           public static final String Uri = "http://compass/sample/petclinic/alias/owner";<o:p></o:p>

           public static final String GroupId = "petclinic";<o:p></o:p>

       }<o:p></o:p>

}<o:p></o:p>

……<o:p></o:p>

}<o:p></o:p>

<o:p> </o:p>

    第二类:*.cpm.xml文件<o:p></o:p>

    *.cpm.xml就是Object/Search Engine Mapping了。 我们也可以拿她当作同Hibernate中的*.hbm.xml来理解。他的作用就是提供了POJOcommon meta data的映射。下面是一个*.cpm.xml文件的片断:<o:p></o:p>

<compass-core-mapping package="org.compass.sample.petclinic"><o:p></o:p>

    <contract alias=

分享到:
评论
1 楼 neptune 2007-11-22  
正需要非常感谢

相关推荐

    COMPASS使用说明

    COMPASS使用说明 COMPASS是油气田开发和设计的专业软件,提供了从初步设计到实施的全过程支持。下面是COMPASS使用说明中的重要知识点: 一、基本概念和界面操作 * 文件操作:COMPASS支持打开、保存、导出和打印等...

    compass的配置文件

    spring集成compass的配置文件 跟项目配套的compass源码在http://download.csdn.net/source/1447662

    Compass_入门指南

    以下是 Compass 入门指南,涵盖了 Compass 的核心概念、配置文件、注解方式、核心 API、与 Spring 集成等方面。 Compass 的配置文件 Compass 的配置文件主要分为三类:Java 代码、*.cmd.xml 文件、*.cpm.xml 文件...

    compass完整可用项目

    2. **配置文件**:如`compass.conf`,可能定义了Compass的配置,如索引位置、连接到的数据源等。 3. **jar包**:项目依赖的各种库,包括Compass、Lucene、SSH框架和其他必需的第三方库。 4. **SQL脚本**:用于初始化...

    compass搜索引擎技术

    通过添加特定的注解或配置,Compass可以在实体的CRUD操作时自动处理索引的更新。 6. **建立索引** 应用启动时,通常会执行一次全量索引,将所有数据导入到Compass中。这可以通过调用Compass的批处理索引API完成。...

    mongodb安装包和compass

    Compass是MongoDB的官方图形界面工具,它提供了一个用户友好的界面,用于可视化数据库和集合,帮助开发者和管理员进行数据探索、查询构建、性能分析以及基本的数据库管理。通过Compass,用户可以轻松地浏览和操作...

    java搜索 compass资料

    这通常包括设置Compass的配置文件(如`compass.cfg.xml`),以及定义索引和搜索策略等。具体配置项取决于项目的需求,例如索引存储位置、索引更新频率等。 #### 五、Compass 高级特性 Compass 提供了许多高级特性...

    compass annotation关联关系

    在使用 Compass Annotation 时,需要进行基本的配置,包括 Compass 实例的创建、数据源的配置、以及启用 Annotation 映射支持。然后,在实体类上添加相应的注解,并在应用启动时进行初始化,让 Compass 扫描并加载...

    基于Java的Luncene的compass框架说明使用技术文档.pdf

    ### 基于Java的Luncene的Compass框架说明使用技术文档 #### 一、原理描述 Compass是一款优秀的开源Java搜索引擎框架,它能够帮助应用程序实现更为强大的搜索引擎语义能力。Compass依赖于顶级的Lucene搜索引擎,并...

    Struts+Hibernate+spring+jpa+lucene+jbpm+compass配置文件

    整合这些技术时,开发者通常会创建一个综合的配置文件体系,例如Spring的配置文件可以管理所有组件的依赖和配置,通过引入Struts、Hibernate、JPA、Lucene、JBPM和Compass的相关配置。这需要对每个框架的原理有深入...

    基于JavaLuncene的compass框架说明使用技术文档.doc

    4. 配置 Compass:配置 Compass 的 XML 配置文件,指定数据源、索引位置等参数。 5. 初始化和使用:在应用程序启动时初始化 Compass 实例,然后就可以开始使用 Compass 进行数据的搜索和管理。 五、SSH 框架中的 ...

    Compass中文版说明书

    Compass中文版说明书

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

    ### Compass 使用详解 #### 一、Compass 概述 Compass 是一款开源的 Java 库,用于简化 Lucene 的使用。它通过提供类似于 Hibernate 的对象关系映射(ORM)功能,使得开发者能够更加轻松地将 Java 对象映射到 ...

    Compass 的java代码

    首先,你需要配置Compass,指定数据源和索引位置。接着,定义对象-搜索映射文件(`.cmap.xml`),将你的Java类与Lucene字段对应起来。然后,你可以使用Compass的Gps接口来启动和停止索引服务,以及执行搜索操作。 *...

    compass 全文搜索

    2. **Compass配置**:设置数据源、映射文件、索引位置等,创建并启动Compass实例。 3. **对象映射**:学习如何定义对象的属性与Lucene字段的对应关系,包括字段类型、是否存储、是否索引等。 4. **索引操作**:...

    compass教程.pdf

    5. TARGET EDITOR:靶点编辑器设置靶点位置及靶区形状。 6. SURVEY TOOLS:测量工具定义不同测量工具的测量误差。 7. MAGNETIC CALCULATOR:计算不同磁场模型的磁场值。 8. GEODETIC CALCULATOR:不同地质坐标系...

    Spring ,JPA,Compass使用注解开发的博客站内搜索

    在实际应用中,开发者首先需要在Spring配置文件中声明JPA和Compass的相关bean,例如数据源、entityManagerFactory、transactionManager以及Compass的设置。接着,会在博客文章的实体类上使用JPA的@Entity和Compass的...

    OpenStack Days China 2016 华为Wei Shao:Compass开源项目介绍

    用户在云上的Compass UI中输入配置数据,Compass服务器将部署配置和工具发送到目标环境中的Compass代理。本地Compass代理负责部署/更新数据中心。 在Compass项目的内部机制中,引入了一些重要的概念,比如插件...

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

    - `snapshot_blob.bin` 和 `natives_blob.bin`:这些可能是应用程序的特定二进制数据文件,用于存储程序运行时需要的资源或配置信息。 - `icudtl.dat`:这是Unicode的国际化数据文件,用于处理各种语言和字符集的...

    Compass原理深入学习笔记

    - CompassConfiguration用于加载配置和映射文件,创建Compass实例。 - CompassSession查询数据时返回CompassHits,提供分数、资源和映射对象。 - CompassTemplate简化索引操作,自动处理Session和Transaction。 ...

Global site tag (gtag.js) - Google Analytics