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; } }