`
alartin
  • 浏览: 209618 次
社区版块
存档分类
最新评论

Compass的搜索结果(Hit)

阅读更多
Compass的搜索语法基本上和Lucene一样.但是有两点要注意:Compass读取搜索配置文件, 默认的是对所有元数据都搜索, 这点比Lucene方便. 例如,在Lucene中,你需要指定要搜索的Field, 如果你需要搜索标题域和内容域的话, 唯一的方法就是创建一个全文域将标题域和内容域整合在一起. 而在Compass中, 在配置文件中有all这个选项, 默认情况下就是对所有元数据搜索;另外一个是Compass支持事务, 所以在使用搜索结果时, 需要脱离(detach).Compass中和搜索结果有关的接口和类:
  1. Compass HitsOperations接口: 定义了一些对搜索结果的操作, 例如获得第n个结果对象,获得结果的数量,获得第n个结果的高亮文本,获得第n个结果的包装器(Compas), 获得第n个结果的资源(Resource), 获得第n个结果的分值(Score). 注意Compass和CompassDetachedHits接口都继承这个接口.
  2. Compass Hits接口: 这个接口保有直接使用Compass搜索方法find()返回的结果, 但这个接口只能在事务上下文中使用,如果想在事务之外使用搜索结果, 这个接口提供了脱离方法detach(), detach(int,int)能够将全部或者部分搜索结果脱离出事务. 返回的是CompassDetachedHits接口.这个接口还提供了高亮方法highlighter(int n)返回第n个结果的CompassHighligher对象. 这个方法将任何高亮操作缓存到搜索结果中去, 能够被CompassOperations接口的hightlightedText(int n)方法使用, 如果使用了脱离方法, 那么相应的高亮操作缓存到脱离的搜索结果中去.
  3. DefaultCompassHighlightedText类: 这个类实现了CompassHighlightedText接口, 这个接口只有两种方法getHighlightedText()和getHighlightedText(String property).注意: 第一种方法只返回第一个高亮片段字符串,而第二种方法根据属性来返回这个属性中的高亮片段. 这个类部分实现了Map接口, 其实里面维护着一个HashMap. 这个类的重要方法setHightlightedText(String propertyName, String highlightedText)其实是向这个HashMap中加入各个属性中对应的高亮片段. 所以对于搜索结果来说, 结果对象的高亮是对象各个属性中高亮片段的集合. 如果简单的使用getHighlightedText方法, 那么实际返回仅仅是第一个高亮.
分享到:
评论

相关推荐

    compass搜索引擎技术

    Compass搜索引擎技术是一种基于Lucene的全文检索框架,它提供了更高级别的API和集成机制,使得在Java应用程序中实现搜索引擎功能变得更加便捷。Compass的主要目标是将全文索引能力无缝地融入到现有的业务应用程序中...

    基于Lucene的搜索引擎框架Compass教程

    通过使用Compass,我们可以轻松地将商品对象(包括标题、描述、价格等属性)与Lucene索引关联,当商品数据发生变化时,索引会自动更新,从而保证搜索结果的准确性和实时性。 **六、学习资源与进阶** 学习Compass...

    Compass 的java代码

    3. **缓存支持**:Compass提供了缓存机制,可以缓存搜索结果,提高性能。同时,它也支持对搜索索引的缓存,以减少磁盘I/O操作。 4. **事务支持**:由于Compass与ORM框架(如Hibernate和JPA)的集成,它可以支持事务...

    compass对象搜索引擎

    Compass对象搜索引擎是一款基于Lucene的全文搜索引擎框架,它为Java开发者提供了高级的搜索功能,使得在应用程序中集成全文检索变得更加便捷。Compass的核心理念是将数据库中的对象与Lucene索引之间建立映射...

    compass 全文搜索

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

    java搜索 compass资料

    ### Java搜索 Compass 资料知识点 #### 一、Compass 概述 Compass 是一个为 Java 应用程序提供全文检索功能的框架。它能够帮助开发者在 Java 应用程序中轻松实现复杂的搜索需求,并且具有较高的性能。Compass 基于...

    compass完整可用项目

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

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

    标题 "Spring ,JPA,Compass使用注解开发的博客站内搜索" 涉及的是在Java开发环境中,利用Spring框架、Java Persistence API (JPA) 和 Compass搜索引擎来实现一个博客系统的站内搜索功能。这是一项关键的技术,因为...

    Compass原理深入学习笔记

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

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

    这个方法将接收用户的查询参数,调用Compass提供的API执行搜索,并获取搜索结果。 4. **分页处理**:为了实现分页,你需要在搜索请求中添加页码和每页显示的记录数。然后,使用Compass的API获取相应范围的搜索结果...

    compass annotation关联关系

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

    Compass全文检索完整实例,可运行

    Compass全文检索是一个强大的搜索引擎库,它为Java应用程序提供了便捷的全文索引和搜索功能。在本实例中,我们有一个可直接运行的Compass全文检索系统,已经集成了SSH(Struts、Spring、Hibernate)框架,这是一个...

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

    本文将介绍Compass,一个基于Lucene的全文搜索引擎库,为Java开发者提供了一种简单易用的方式来集成全文检索功能。Compass不仅提供了与ORM框架(如Hibernate、JPA等)的无缝集成,还支持动态索引更新,使得实时数据...

    Lucene+compass学习资料

    例如,使用Compass将数据库中的数据同步到Lucene索引中,然后通过Ajax实现前端与后端的无刷新通信,当用户在搜索框中输入关键词时,立即向服务器发送请求,服务器利用Lucene进行查询,并用Ajax返回结果,这样就能在...

    基于Luncene的compass框架详解-java

    5. **查询执行**: 利用Compass提供的API执行查询操作,获取搜索结果并进行后续处理。 四、基于SSH的Compass实例 假设在一个基于SSH(Spring+Struts+Hibernate)架构的项目中使用Compass框架,首先需要在项目中加入...

    compass教程.pdf

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

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

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

    Compass技术文档

    5. **执行搜索**:利用Compass提供的API执行搜索操作,获取结果集并进行相应的业务逻辑处理。 以上是Compass的基本使用方法和步骤。通过这种方式,开发者可以在Java应用中轻松集成搜索引擎功能,提升应用的搜索性能...

Global site tag (gtag.js) - Google Analytics