`

Compass实现站内全文搜索(一)

 
阅读更多
Compass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架.Compass包括:
* 搜索引擎抽象层(使用Lucene搜索引荐),
* OSEM (Object/Search Engine Mapping) 支持,
* 事务管理,
* 类似于Google的简单关键字查询语言,
* 可扩展与模块化的框架,
* 简单的API.

如果你需要做站内搜索引擎,而且项目里用到了hibernate,那用compass是你的最佳选择。

本文用到compass2.14和IK中文分词包,另外将会使用注解来实现

废话不说,先给出关键的实现代码

假如现在有个需求,需要根据关键字搜索出文章,
Java代码  收藏代码
    @Searchable(alias="article")   
    public class Article {  
      
        private Long ID; // 标识ID  
        private String content; // 正文  
        private String title; // 文章标题  
        private Date createTime; // 创建时间  
      
        @SearchableId  
        public Long getID() {  
            return ID;  
        }  
      
        public void setID(Long id) {  
            ID = id;  
        }  
      
        @SearchableProperty(index = Index.TOKENIZED, store = Store.YES)  
        public String getContent() {  
            return content;  
        }  
      
        public void setContent(String content) {  
            this.content = content;  
        }  
      
      
      
        @SearchableProperty(index = Index.TOKENIZED, store = Store.YES)  
        public String getTitle() {  
            return title;  
        }  
      
        public void setTitle(String title) {  
            this.title = title;  
        }  
      
      
        @SearchableProperty(index = Index.TOKENIZED, store = Store.YES)  
        public Date getCreateTime() {  
            return createTime;  
        }  
      
        public void setCreateTime(Date createTime) {  
            this.createTime = createTime;  
        }  
      
      
      
          
      
      
    }  



简单解释一下:
@Searchable(alias="article")表示这个是可以搜索实体,别人为article.
@SearchableId  这个是实体搜索的标识ID,和hibernate里的概念差不多,用来区分索引文件里的实体索引。
@SearchableProperty(index = Index.TOKENIZED, store = Store.YES) 表示这个属性存入索引文件,而且是在分词后在存入.
分享到:
评论

相关推荐

    S2SH+compass (实现站内全文检索)

    标题中的"S2SH+compass"指的是一个基于Struts2(S),Spring(S)和Hibernate(H)这三种开源框架的Java Web应用,再加上Compass搜索引擎来实现站内全文检索的功能。这种组合常用于构建复杂的企业级应用,因为它提供...

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

    通过以上步骤,你可以在SSH框架下成功集成Compass实现站内搜索分页。这一过程涉及到Java Web开发的多个层面,包括MVC架构、数据库操作、全文检索以及用户体验设计。熟练掌握这些技能将有助于构建高效且功能丰富的Web...

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

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

    使用compass+lucene实现简单的全文检索功能

    本文将详细介绍如何使用 Compass 和 Lucene 实现一个简单的全文检索功能。 首先,Lucene 是一个高性能、全功能的文本分析库,主要用于信息检索。它提供了索引和搜索大量文本数据的能力,包括分词、分析、存储和搜索...

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

    接下来,为了实现搜索功能,我们需要创建一个Service层的接口和实现类,这个类会调用Compass的API来执行搜索查询。搜索方法可能接受关键词参数,然后使用Compass的QueryBuilder或直接写入Lucene的Query语法来构建...

    struts2+spring2.5+hibernate3.26+compass2.1搜索引擎简单实现(无jar包)

    为了实现搜索功能,你需要创建一个搜索Action,该Action可以调用由Spring管理的Service,Service再通过CompassTemplate执行查询。你可以使用Compass提供的Gps接口或者自定义查询语句来实现对索引的检索。检索结果...

    compass搜索引擎技术

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

    java搜索 compass资料

    在题目中提供的部分Java代码中,展示了一个名为`ProductInfo`的实体类,该类通过使用Compass注解实现了全文检索功能。 1. **实体类定义** ```java @Entity @Searchable public class ProductInfo implements ...

    compass完整可用项目

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

    compass annotation关联关系

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

    compass对象搜索引擎

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

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

    5. **实时搜索**:与ORM框架集成后,数据库的变更会立即反映到索引中,实现搜索结果的实时更新。 **三、Compass工作流程** 1. **初始化**:创建并配置Compass实例,指定数据源和存储路径。 2. **对象映射**:定义...

    compass+lucene

    **Compass** 是一个基于Apache Lucene的全文搜索引擎库,它提供了一种简单的方式将全文搜索集成到Java应用中。Compass的核心目标是简化与数据库交互时的搜索功能,通过透明地创建、管理和优化索引来实现。它的主要...

    Compass 的java代码

    Compass是一款基于Apache Lucene的全文搜索引擎库,它为Java开发者提供了一个高级的、易于使用的搜索框架。在Java应用中集成搜索引擎功能时,Compass提供了一种简化的方式来管理和操作Lucene索引。通过Compass,你...

    compass-2.2.0.zip

    Compass 2.2.0 是一个开源的...在实际项目中,我们可以根据需求选择合适的Compass配置,结合其提供的工具和API,实现高效的全文搜索、数据分析以及数据同步。对于初学者,可以通过阅读官方文档和示例代码来快速上手。

Global site tag (gtag.js) - Google Analytics