Elasticsearch CRUD 使用说明

此文章是给有所基础的人看
最最基础请看另一篇安装与介绍(点此链接,自动跳转)

/* 文章结尾有完整 CRUD demo*/

         <dependency>
 	            <groupId>org.springframework.boot</groupId>
 	            <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
         </dependency>

application.properties文件配置:

spring.data.elasticsearch.repositories.enabled = true
spring.data.elasticsearch.cluster-nodes =127.0.0.1:9300

首先我们准备好实体类:

 public class Item {
   
    private Long id;
    private String title; //标题
    private String category;// 分类
    private String brand; // 品牌
    private Double price; // 价格
    private String images; // 图片地址
}

1. javaBean:

package com.czxy.domain;

import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import javax.persistence.*;

@Document(indexName = "product",type = "product", shards = 1, replicas = 0)
@Table(name = "product")
public class Product {
   

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "pid")
    private Integer id;
    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String pname;
    @Field(type = FieldType.Double)
    private Double price;
    @Field(type = FieldType.Integer)
    private Integer cid;
	
    private Category category;

	 //get set 方法省略......
}


package com.czxy.domain;

import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import javax.persistence.Column;
import javax.persistence.Id;


@Document(indexName = "category",type = "category", shards = 1, replicas = 0)
public class Category {
   


    @Id
    @Column(name = "cid")
    private Integer id;
    //不分词
    @Field(type = FieldType.Keyword)
    private String cname;

   //get set 方法省略......

    
}
package com.czxy.dao;
import com.czxy.domain.Product;
import tk.mybatis.mapper.common.Mapper;

@org.apache.ibatis.annotations.Mapper
public interface ProductMapper extends Mapper<Product> {
   
}

/***************************/
package com.czxy.dao;


import com.czxy.domain.Category;
import tk.mybatis.mapper.common.Mapper;

@org.apache.ibatis.annotations.Mapper
public interface CateGoryMapper extends Mapper<Category> {
   
}

package com.czxy.domain.vo;

import com.czxy.es.pojo.EsProduct;

import java.util.List;

public class EasyUIResult<T> {
   
	private long total;
	private List<T> rows;
  //get set 方法省略......
	
	 
}

1.2.Repository(后缀是Repository,继承ElasticsearchRepository)

package com.czxy.es;
import com.czxy.domain.Product;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
//第一个参数是:实体类
//第二个参数是:实体类的id字段的属性
public interface ProductRepository extends ElasticsearchRepository <Product,Integer>{
   
}

2.业务层 查询

package com.czxy.service;


import com.czxy.dao.CateGoryMapper;
import com.czxy.dao.ProductMapper;
import com.czxy.domain.Category;
import com.czxy.domain.Product;
import com.czxy.domain.vo.EasyUIResult;


import com.czxy.es.ProductRepository;

import com.github.pagehelper.PageInfo;
import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.index.query.*;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.ArrayList;
import java.util.List;

import static org.elasticsearch.index.query.QueryBuilders.matchAllQuery;

/**
* @author Fang
* @create 2018-10-11 11:13
* @desc
**/
@Service
@Transactional
public class ProductService {
   

  @Autowired
  private ProductMapper productMapper;
  @Autowired
  private CateGoryMapper cateGoryMapper;
   //es 所用操作类
  @Autowired
  private ProductRepository productRepository;

      /**
      *@author Fang
      *@create 2018/10/13 17:11
      *@desc  查询
      **/
  
      public EasyUIResult<Product> findAll(Integer page, Integer rows
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值