Hibernate Search 和 Lucene 的快速介绍 转载自linux公社
2017-03-17 12:10
204 查看
http://www.linuxidc.com/Linux/2015-11/125538.htm
1. 该示例是基于Hibernate Search 4.3.0-------》hibernate5 更新新特性
这篇博客的目的是演示如何用Hinernate Search来让Hibernate管理的实体可查询和如何用Lucene索引来查询。这个演示只是告诉你在基于Hibernate的应用中添加查询功能是个很简单的事。其实Lucene还有很多东西需要了解,例如Text Tonkenizers 和 analyzers 的工作原理到底是啥。并且Lucene和Hibernate Search组合还能干好多牛逼活,我的这片博客仅仅说了个皮毛而已。如果这片文章引起你的注意了,我希望你关注Lucene和Hinernate
Search 项目和其项目网站。
Hibernate Search的注解:
@Indexed: 标明这个实体需要被Lucene创建索引,从而使之可以被检索
@Analyzer: 告诉Hibernate Search来标记它的域以及更新Lucene索引的时候使用哪个Lucene分析器。注意:你以后检索的时候,使用一个与Lucene为你将要检索的文件创建索引的时候使用的分析器相同的分析器是非常重要的。然后使用一个不同的分析器可能也会返回我们想要的结果,但是这得不到保证,所以,总是先研究你选择的用来创建索引和检索的分析器,然后再做出明智的选择。
@DocumentId:标明Car的id字段应该被用作Lucene索引中文档的ID,这几乎总是和数据库中实体的主键是同一个字段。
@Field: 告诉Hibernate Search为该字段创建爱你索引,并且提供一些其他信息,比如该字段在索引中需要被如何处置。
1. 该示例是基于Hibernate Search 4.3.0-------》hibernate5 更新新特性
这篇博客的目的是演示如何用Hinernate Search来让Hibernate管理的实体可查询和如何用Lucene索引来查询。这个演示只是告诉你在基于Hibernate的应用中添加查询功能是个很简单的事。其实Lucene还有很多东西需要了解,例如Text Tonkenizers 和 analyzers 的工作原理到底是啥。并且Lucene和Hibernate Search组合还能干好多牛逼活,我的这片博客仅仅说了个皮毛而已。如果这片文章引起你的注意了,我希望你关注Lucene和Hinernate
Search 项目和其项目网站。
Hibernate Search的注解:
@Indexed: 标明这个实体需要被Lucene创建索引,从而使之可以被检索
@Analyzer: 告诉Hibernate Search来标记它的域以及更新Lucene索引的时候使用哪个Lucene分析器。注意:你以后检索的时候,使用一个与Lucene为你将要检索的文件创建索引的时候使用的分析器相同的分析器是非常重要的。然后使用一个不同的分析器可能也会返回我们想要的结果,但是这得不到保证,所以,总是先研究你选择的用来创建索引和检索的分析器,然后再做出明智的选择。
@DocumentId:标明Car的id字段应该被用作Lucene索引中文档的ID,这几乎总是和数据库中实体的主键是同一个字段。
@Field: 告诉Hibernate Search为该字段创建爱你索引,并且提供一些其他信息,比如该字段在索引中需要被如何处置。
@Entity @Indexed @Analyzer(impl = org.apache.lucene.analysis.standard.StandardAnalyzer.class) public class Car { @Id @GeneratedValue @DocumentId private Long id; @Column @Field(store = Store.YES) private String make; @Column @Field(store = Store.YES) private String model; @Column @Field(store = Store.YES) private short year; @Column @Field(store = Store.NO) private String description; public Car() { } public Car(String make, String model, short year, String description) { super(); this.make = make; this.model = model; this.year = year; this.description = description; } public String getMake() { return make; } // more getters/setters
相关文章推荐
- Linux快速入门之Linux常用命令介绍
- 【转载】Linux起源、GNU简介、发行版本介绍及特点
- (转载)Linux:Ldd命令介绍及使用方法
- 如何快速删除Linux下的svn隐藏文件及其他临时文件 (转载)
- linux中locate命令使用介绍(快速搜寻档案)
- Linux的各大发行版介绍-转载
- [转载] linux cgroup技术介绍
- 在CentOS 6上使用AWStats分析httpd和Tomcat日志(转载于Linux公社)
- 十种启动linux系统快速方法介绍
- linux系统学习:基础篇(系统介绍以及命令行的使用)快速入门linux系统
- 【转载】Linux起源、GNU简介、发行版本介绍及特点
- Entity Framework快速入门--直接修改(简要介绍ObjectContext处理机制)【转载】
- linux 下好用的音乐播放器介绍(转载)
- 转载_linux中的dd命令介绍
- 【转载】Linux core 文件介绍
- 转载:LINUX上快速使用SVN
- Linux下Patch的应用和制作方法介绍 ---转载
- [转载] Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍
- linux的DNS相关介绍(转载)
- linux目录结构详细介绍(转载)