Compass的搜索语法基本上和Lucene一样.但是有两点要注意:Compass读取搜索配置文件, 默认的是对所有元数据都搜索, 这点比Lucene方便. 例如,在Lucene中,你需要指定要搜索的Field, 如果你需要搜索标题域和内容域的话, 唯一的方法就是创建一个全文域将标题域和内容域整合在一起. 而在Compass中, 在配置文件中有all这个选项, 默认情况下就是对所有元数据搜索;另外一个是Compass支持事务, 所以在使用搜索结果时, 需要脱离(detach).Compass中和搜索结果有关的接口和类:
- Compass HitsOperations接口: 定义了一些对搜索结果的操作, 例如获得第n个结果对象,获得结果的数量,获得第n个结果的高亮文本,获得第n个结果的包装器(Compas), 获得第n个结果的资源(Resource), 获得第n个结果的分值(Score). 注意Compass和CompassDetachedHits接口都继承这个接口.
- Compass Hits接口: 这个接口保有直接使用Compass搜索方法find()返回的结果, 但这个接口只能在事务上下文中使用,如果想在事务之外使用搜索结果, 这个接口提供了脱离方法detach(), detach(int,int)能够将全部或者部分搜索结果脱离出事务. 返回的是CompassDetachedHits接口.这个接口还提供了高亮方法highlighter(int n)返回第n个结果的CompassHighligher对象. 这个方法将任何高亮操作缓存到搜索结果中去, 能够被CompassOperations接口的hightlightedText(int n)方法使用, 如果使用了脱离方法, 那么相应的高亮操作缓存到脱离的搜索结果中去.
- DefaultCompassHighlightedText类: 这个类实现了CompassHighlightedText接口, 这个接口只有两种方法getHighlightedText()和getHighlightedText(String property).注意: 第一种方法只返回第一个高亮片段字符串,而第二种方法根据属性来返回这个属性中的高亮片段. 这个类部分实现了Map接口, 其实里面维护着一个HashMap. 这个类的重要方法setHightlightedText(String propertyName, String highlightedText)其实是向这个HashMap中加入各个属性中对应的高亮片段. 所以对于搜索结果来说, 结果对象的高亮是对象各个属性中高亮片段的集合. 如果简单的使用getHighlightedText方法, 那么实际返回仅仅是第一个高亮.
分享到:
相关推荐
Compass搜索引擎技术是一种基于Lucene的全文检索框架,它提供了更高级别的API和集成机制,使得在Java应用程序中实现搜索引擎功能变得更加便捷。Compass的主要目标是将全文索引能力无缝地融入到现有的业务应用程序中...
通过使用Compass,我们可以轻松地将商品对象(包括标题、描述、价格等属性)与Lucene索引关联,当商品数据发生变化时,索引会自动更新,从而保证搜索结果的准确性和实时性。 **六、学习资源与进阶** 学习Compass...
3. **缓存支持**:Compass提供了缓存机制,可以缓存搜索结果,提高性能。同时,它也支持对搜索索引的缓存,以减少磁盘I/O操作。 4. **事务支持**:由于Compass与ORM框架(如Hibernate和JPA)的集成,它可以支持事务...
Compass对象搜索引擎是一款基于Lucene的全文搜索引擎框架,它为Java开发者提供了高级的搜索功能,使得在应用程序中集成全文检索变得更加便捷。Compass的核心理念是将数据库中的对象与Lucene索引之间建立映射...
2. **实时索引**:当数据库中的数据发生变化时,Compass能够自动或手动更新相关的索引,保持搜索结果与数据库内容同步。 3. **高级查询API**:Compass提供了一套高级的查询API,包括布尔查询、短语查询、模糊查询、...
### Java搜索 Compass 资料知识点 #### 一、Compass 概述 Compass 是一个为 Java 应用程序提供全文检索功能的框架。它能够帮助开发者在 Java 应用程序中轻松实现复杂的搜索需求,并且具有较高的性能。Compass 基于...
【compass完整可用项目】是一个基于特定技术栈的软件开发项目,该项目的核心是Compass库,一个与Lucene紧密集成的全文搜索引擎工具。Compass提供了一种简单的方式来在Java应用程序中集成全文搜索功能,使得开发者...
标题 "Spring ,JPA,Compass使用注解开发的博客站内搜索" 涉及的是在Java开发环境中,利用Spring框架、Java Persistence API (JPA) 和 Compass搜索引擎来实现一个博客系统的站内搜索功能。这是一项关键的技术,因为...
Compass是一款基于Apache Lucene的全文搜索引擎框架,它为开发者提供了更高级别的抽象层,简化了搜索引擎的集成工作。在理解Compass之前,我们需要先了解全文检索的基本概念和原理。 全文检索是相对于传统的基于...
这个方法将接收用户的查询参数,调用Compass提供的API执行搜索,并获取搜索结果。 4. **分页处理**:为了实现分页,你需要在搜索请求中添加页码和每页显示的记录数。然后,使用Compass的API获取相应范围的搜索结果...
Compass 是一个全文搜索引擎库,它是对 Lucene 的封装,为 Java 应用提供了一种简单易用的接口。在 Compass 中,Annotation 是一种元数据注解方式,它允许开发者在对象模型上直接定义搜索映射,使得对象与索引之间的...
Compass全文检索是一个强大的搜索引擎库,它为Java应用程序提供了便捷的全文索引和搜索功能。在本实例中,我们有一个可直接运行的Compass全文检索系统,已经集成了SSH(Struts、Spring、Hibernate)框架,这是一个...
本文将介绍Compass,一个基于Lucene的全文搜索引擎库,为Java开发者提供了一种简单易用的方式来集成全文检索功能。Compass不仅提供了与ORM框架(如Hibernate、JPA等)的无缝集成,还支持动态索引更新,使得实时数据...
例如,使用Compass将数据库中的数据同步到Lucene索引中,然后通过Ajax实现前端与后端的无刷新通信,当用户在搜索框中输入关键词时,立即向服务器发送请求,服务器利用Lucene进行查询,并用Ajax返回结果,这样就能在...
5. **查询执行**: 利用Compass提供的API执行查询操作,获取搜索结果并进行后续处理。 四、基于SSH的Compass实例 假设在一个基于SSH(Spring+Struts+Hibernate)架构的项目中使用Compass框架,首先需要在项目中加入...
COMPASS 教程Pdf COMPASS 是一款专业的油气田设计和生产软件,主要用于油气田的规划、设计和生产过程。下面是 COMPASS 的一些重要知识点: 1. COMPASS WELLPLAN FOR WINDOWS 功能简介:COMPASS 的核心功能包括 ...
### Compass 使用详解 #### 一、Compass 概述 Compass 是一款开源的 Java 库,用于简化 Lucene 的使用。它通过提供类似于 Hibernate 的对象关系映射(ORM)功能,使得开发者能够更加轻松地将 Java 对象映射到 ...
5. **执行搜索**:利用Compass提供的API执行搜索操作,获取结果集并进行相应的业务逻辑处理。 以上是Compass的基本使用方法和步骤。通过这种方式,开发者可以在Java应用中轻松集成搜索引擎功能,提升应用的搜索性能...