HiberateSearch的作用是对数据库中的数据进行检索的。它是 hiberate 对著名的全文检索系统 Lucee 的一个集成方案,作用在于对数据表中某些内容庞大的字段(如声明为text的字段)建立全文索引,这样通过hiberatesearch就可以对这些字段进行全文检索后获得相应的POJO,从而加快了对内容庞大字段进行模糊搜索的速度(sql语句中like匹配)。
HiberateSearch自动从HiberateORM实体中提取数据,以将其推送到本地ApacheLucee索引或远程Elasticsearch索引。
HiberateSearch主要有以下功能特点:
通过注释或 programmaticAPI将实体属性声明性映射到索引字段。数据库中所有实体的按需大量索引,以使用预先存在的数据初始化索引。通过HiberateORM会话修改实体的即时自动索引 ,以始终保持索引最新。一种搜索DSL ,可轻松构建全文搜索查询并将命中结果检索为HiberateORM实体。还有更多:分析器的配置、搜索DSL中的许多不同谓词和排序、空间支持。搜索查询返回 projectios而不是etities、聚合、使用桥接的高级自定义映射...@Etity//Thisetityismappedtoaidex@IdexedpublicclassBook{//TheetityIDisthedocumetID@Id@GeeratedValueprivateItegerid;//Thispropertyismappedtoadocumetfield@FullTextFieldprivateStrigtitle;@MayToMay//AuthorswillbeembeddediBookdocumets@IdexedEmbeddedprivateSet<Author>authors=ewHashSet<>();//Gettersadsetters//...}@EtitypublicclassAuthor{@Id@GeeratedValueprivateItegerid;//Thispropertyismappedtoadocumetfield@FullTextFieldprivateStrigame;@MayToMay(mappedBy="authors")privateSet<Book>books=ewHashSet<>();//Gettersadsetters//...}
评论