首页 理论教育 ElasticSearch数据库操作指南

ElasticSearch数据库操作指南

时间:2023-11-22 理论教育 版权反馈
【摘要】:字段productName、price、brand、productDesc没有添加@Field注解,ElasticSearch会根据其Java类型自动确定数据类型,同时对字段的值进行文本分析,因此可以支持全文检索。ElasticSearch常用于实体Bean的注解见表15-4。Spring Data提供了对常见的创建、查询、更新和删除操作以及分页和排序的支持,显著降低了开发人员操作ElasticSearch的门槛。下面在ProductRepository中定义几个方法来扩充ElasticSearch操作的能力。

ElasticSearch数据库操作指南

可以通过实体类来进行类型的mapping映射。首先定义商品的数据结构,创建包com.javadevmap.elasticexample.model,然后新建Product类,具体如下:

978-7-111-61011-3-Part03-149.jpg

在Product类上使用Spring Data Elasticsearch的注解@Document(indexName="java-dev- map",type="product"),此注解声明Product类为被索引的文档,属性indexName声明了索引的名称;属性type声明了索引中文档的类型。字段id上的注解@Id即文档的主键,是唯一标识。Product类中字段productPic的注解@Field(type=FieldType.String,index= FieldIndex.not_analyzed),声明了字段productPic的数据类型为String,同时该字段的值不做分析,不做分析的字段在搜索时是会进行完全匹配的。字段productName、price、brand、productDesc没有添加@Field注解,ElasticSearch会根据其Java类型自动确定数据类型,同时对字段的值进行文本分析,因此可以支持全文检索

ElasticSearch常用于实体Bean的注解见表15-4。

15-4 Bean注解

978-7-111-61011-3-Part03-150.jpg

在定义完Product实体Bean后,创建相应的仓库与ElasticSearch进行交互。Spring Data为开发者简化了与数据源的操作交互方式。只需按照接口的方式声明所要执行的操作即可,具体的实现由Spring Data自动生成。Spring Data提供了对常见的创建、查询、更新和删除操作以及分页和排序的支持,显著降低了开发人员操作ElasticSearch的门槛

public interface ProductRepository extends ElasticsearchRepository<Product,String>{

}(www.xing528.com)

这里读者会发现不需要实现任何方法,当前ProductRepository已经具备了基本的增删改查能力。编写一个测试类进行验证。

978-7-111-61011-3-Part03-151.jpg

运行结果如下:

978-7-111-61011-3-Part03-152.jpg

当这些默认方法不能覆盖所有业务的数据操作需求时,就需要扩展方法。扩展使用方法时,就好像用英文直译要做的事情一样来定义方法名,例如想通过brand来查找ElasticSearch中某条数据,只要定义一个方法findByBrand,这样就具备了通过brand查找的能力。下面在ProductRepository中定义几个方法来扩充ElasticSearch操作的能力。

978-7-111-61011-3-Part03-153.jpg

就如上面所写,只要把想做的事按照JPA的规则命名一个方法,即完成了ElasticSearch操作语句的建立,使用以上规则(参见7.5.2节),就可以自由组装接口方法来扩展ElasticSearch的操作能力。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈