用compass实现站内全文搜索引擎(一)


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

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

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

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

假如现在有个需求,需要根据关键字搜索出文章,
Java代码  收藏代码
  1. @Searchable(alias="article")   
  2. public class Article {  
  3.   
  4.     private Long ID; // 标识ID  
  5.     private String content; // 正文  
  6.     private String title; // 文章标题  
  7.     private Date createTime; // 创建时间  
  8.   
  9.     @SearchableId  
  10.     public Long getID() {  
  11.         return ID;  
  12.     }  
  13.   
  14.     public void setID(Long id) {  
  15.         ID = id;  
  16.     }  
  17.   
  18.     @SearchableProperty(index = Index.TOKENIZED, store = Store.YES)  
  19.     public String getContent() {  
  20.         return content;  
  21.     }  
  22.   
  23.     public void setContent(String content) {  
  24.         this.content = content;  
  25.     }  
  26.   
  27.   
  28.   
  29.     @SearchableProperty(index = Index.TOKENIZED, store = Store.YES)  
  30.     public String getTitle() {  
  31.         return title;  
  32.     }  
  33.   
  34.     public void setTitle(String title) {  
  35.         this.title = title;  
  36.     }  
  37.   
  38.   
  39.     @SearchableProperty(index = Index.TOKENIZED, store = Store.YES)  
  40.     public Date getCreateTime() {  
  41.         return createTime;  
  42.     }  
  43.   
  44.     public void setCreateTime(Date createTime) {  
  45.         this.createTime = createTime;  
  46.     }  
  47.   
  48.   
  49.   
  50.       
  51.   
  52.   
  53. }  


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值