Elasticsearch day2

本文介绍了Spring Data ElasticSearch框架,它基于Spring Data API,简化了Elasticsearch的操作,提供了一种POJO为中心的模型来与Elasticsearch交互。内容包括Spring Data ElasticSearch简介、环境搭建步骤以及如何进行创建索引库、文档增删改查和Search查询等常用操作。
摘要由CSDN通过智能技术生成

Spring Data ElasticSearch 使用

1.1 Spring Data ElasticSearch简介

1.1.1 什么是Spring Data

Spring Data是一个用于简化持久层数据访问的开源框架。其主要目标是使得对数据的访问变得方便快捷。 Spring Data可以极大的简化数据操作的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。包括CRUD外,还包括如分页、排序等一些常用的功能,几乎可以节省持久层代码80%以上的编码工作量。

Spring Data的官网:http://projects.spring.io/spring-data/

Spring Data常用的功能模块如下
在这里插入图片描述

1.1.2 什么是Spring Data ElasticSearch

Spring Data ElasticSearch 基于 spring data API 简化 elasticSearch操作,将原始操作elasticSearch的客户端API 进行封装 。Spring Data为Elasticsearch项目提供集成搜索引擎。Spring Data Elasticsearch POJO的关键功能区域为中心的模型与Elastichsearch交互文档和轻松地编写一个存储库数据访问层
官方网站:http://projects.spring.io/spring-data-elasticsearch/

1.2 环境搭建

实现步骤:

  1. 创建SpringBoot的项目
  2. 勾选starter依赖坐标
  3. 编写持久层接口GoodDao,编写pojo实体类
  4. 配置文件,集群配置,ElasticSearch服务地址http://127.0.0.1:9300

实现过程:

  1. 创建SpringBoot的项目
    在这里插入图片描述
    2.勾选starter依赖坐标
    在这里插入图片描述

  2. 编写持久层接口GoodDao,编写pojo实体类

    public interface GoodDao {
         
    }
    

    pojo实体类,商品good

    public class Good {
         
        private Long id;//商品的唯一标识
        private String title;//标题
        private String category;//分类
        private String brand;//品牌
        private Double price;//价格
        private String images;//图片地址
    	//getter,setter,toString
    }
    
  3. 配置文件,集群配置,ElasticSearch服务地址http://127.0.0.1:9300

    # 配置集群名称
    spring.data.elasticsearch.cluster-name=elasticsearch
    # 配置es的服务地址
    spring.data.elasticsearch.cluster-nodes=127.0.0.1:9300
    

1.3 常用操作

、创建索引库操作

几个用到的注解:

  • @Document:声明索引库配置
    • indexName:索引库名称
    • type:类型名称,默认是“docs”
    • shards:分片数量,默认5
    • replicas:副本数量,默认1
  • @Id:声明实体类的id
  • @Field:声明字段属性
    • type:字段的数据类型
    • analyzer:指定分词器类型
    • index:是否创建索引 默认为true
    • store:是否存储 默认为false

实体类配置:

/**
 * 商品实体类
 * @Document() 注解作用:定义一个索引库,一个类型
 * indexName属性:指定索引库的名称
 * type属性:指定类型名称
 * shards属性:指定分片数
 * replicas属性:指定复制副本数
 */
@Document(indexName = "heima4",type = "goods",shards = 5,replicas = 1)
public class Good {
   
    //必须有id,这里的id是全局唯一的标识,等同于es中的“_id”
    @Id
    private Long id;
    /**
     * type: 字段数据类型
     * analyzer: 分词器类型
     * index: 是否索引(默认值:true)
     * store: 是否存储(默认值:false)
     */
    @Field(type = FieldType.Text,analyzer = "ik_max_word")
    private String title;//标题
    @Field(type = FieldType.Keyword)
    private String category;//分类
    @Field(type = FieldType.Keyword)
    private String brand;//品牌
    @Field(typ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值