Hibernate Search 和 Lucene 的快速介绍 转载自linux公社

本文介绍如何使用HibernateSearch使Hibernate管理的实体可查询,并利用Lucene索引进行搜索。通过示例展示如何配置索引及分析器,帮助读者快速掌握在Hibernate应用中添加查询功能的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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组合还能干好多牛逼活,我的这片博客仅仅说了个皮毛而已。如果这片文章引起你的注意了,我希望你关注LuceneHinernate 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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值