实体类:利用注解建立实体类会自动根据实体类创建索引,不需要自己建立mapping

package com.msic.mall.search.domain;

import lombok.AllArgsConstructor;

import lombok.Data;

import lombok.NoArgsConstructor;

import lombok.experimental.Accessors;

import org.springframework.data.annotation.Id;

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

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

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

import java.io.Serializable;

import java.math.BigDecimal;

import java.util.List;

/**

* 搜索中的商品信息

* Created by macro on 2018/6/19.

*/

@Data

@NoArgsConstructor

@AllArgsConstructor

@Accessors(chain = true)

@Document(indexName = "pms_product", type = "_doc",shards = 1,replicas = 0)

public class EsProduct implements Serializable {

@Id

private Long id;

private Long shopId;

@Field(type = FieldType.Keyword)

private String shopName;

private String shopIcon;

private Long spuId;

@Field(analyzer = "ik_max_word",type = FieldType.Text)

private String productName;

private String productIcon;

private BigDecimal productPrice;

@Field(type = FieldType.Integer)

private Integer sales; //销量

private Integer stock;//库存,

private boolean hasStock;//库存,

@Field(type = FieldType.Integer)

private Integer newStatus; //新品

@Field(type = FieldType.Integer)

private Integer advanceSaleStatus;//预售

private Long brandId;// 品牌id

@Field(type = FieldType.Keyword)

private String brandName;// 品牌名称

private Long productCategoryId; //分类id

@Field(type = FieldType.Keyword)

private String productCategoryName; //商品分类名称

// @Field(analyzer = "ik_max_word",type = FieldType.Text)

// private String subTitle; // 副标题

// @Field(analyzer = "ik_max_word",type = FieldType.Text)

// private String keywords;

private Integer sort; //排序

// @Field(type = FieldType.Keyword)

private String specificationList;

private Long hotScore;// 热度值

// @Field(type = FieldType.Nested)

// private List attrValueList;

private static final long serialVersionUID = -1L;

// 货号

// @Field(type = FieldType.Keyword)

// private String productSn;

// private Integer promotionType;

// 是否推荐

// private Integer recommandStatus;

}

controller

@ApiOperation(value = "导入所有数据库中商品到ES")

@PostMapping(value = "/importAll")

public CommonResponseResult importAllList() {

CommonResponseResult responseResult = null;

Map map = new HashMap();

try {

int count = esProductService.importAll();

map.put("result",count+"条记录被添加");

responseResult=CommonResponseResult.ok(map);

}catch (Exception e){

e.printStackTrace();

responseResult=CommonResponseResult.notOk(e.getMessage());

}

return responseResult;

}

service:查出需要导入的数据

@Override

public int importAll() {

List esProductList = productDao.getAllEsProductList(null);//从数据库查询数据

for (EsProduct product:

esProductList) {

product.setProductIcon(dfsUrlPrefix+product.getProductIcon());

LOGGER.info(product.getSpecificationList());

}

int result = 0;

try {

try {

productRepository.deleteAll();

}catch (Exception e){

e.printStackTrace();

throw new MyException("原数据删除失败");

}

Iterable esProductIterable = productRepository.saveAll(esProductList);

Iterator iterator = esProductIterable.iterator();

while (iterator.hasNext()) {

result++;

iterator.next();

}

}catch (Exception e){

e.printStackTrace();

throw new MyException("数据导入失败,请重试");

}

return result;

}

本文地址:https://blog.csdn.net/qq_45151158/article/details/112008944

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

es java_java整合ElasticSearch导入数据到es中相关推荐

  1. elasticsearch 分页_[Springboot实战系列]整合ElasticSearch实现数据模糊搜索

    前言 本文介绍了如何整合搜索引擎elasticsearch与springboot,对外提供数据查询接口. 业务介绍 我的个人网站需要对mysql数据库内存储的京东商品进行模糊查询(模仿淘宝商品搜索), ...

  2. 【数据篇】SpringBoot 整合 Elasticsearch 实践数据搜索引擎

    写在最前 Elasticsearch 入门必读 Docker安装ELK Spring Data Elasticsearch 参考文档 版本选择 Spring Data Release Train Sp ...

  3. 多台es服务器搭建elasticsearch集群,es单机伪集群搭建,在一台服务器上以三个不同的端口模拟三台主机完成es伪集群搭建,windows和Linux操作方法一致

    目录 (一)es单机伪集群搭建 一.准备三台elasticsearch服务器(复制三个es目录) 二.修改每台服务器的配置 1.修改es配置文件 2.配置注意 (二)多台服务器es集群搭建: 1 安装 ...

  4. sqoop导入数据到hive中元数据问题

    简单配置了sqoop之后开始使用,之前用的时候很好用,也不记得有没有启动hivemetastore,今天用的时候没有启动,结果导入数据时,如果使用了db.tablename,就会出现找不到数据库的错, ...

  5. elasticsearch导入数据的几种方法

    Elasticsearch一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.ElasticSearch也支持存储,查询,排序,分页等数据库的功能. 下面介绍下如何把数据导入Elast ...

  6. mysql sync es 异步双写_mysql数据同步es方案思考

    在线QQ客服:1922638 专业的SQL Server.MySQL数据库同步软件 大体计划 1.双写 矫捷长处:简略. 错误谬误: a.停业代码耦合严重. b.如何保证双写成功 c.同步双写会增加响 ...

  7. SpringBoot整合HBase将数据写入Docker中的HBase

    在之前的项目里,docker容器中已经运行了HBase,现将API操作HBase实现数据的增删改查 通过SpringBoot整合Hbase是一个很好的选择 首先打开IDEA,创建项目(project) ...

  8. java hdfs导入hbase_使用BulkLoad批量导入数据到HBase中

    说明 BulkLoad将数据批量导入HBase中.支持通过命令行和API两种操作方式. 命令行包含如下两个步骤: ImportTsv CompleteBulkLoad 准备工作 在HDFS创建临时目录 ...

  9. POI导入数据的过程中,遇到读取以科学计数法显示的数据

    在Poi读取Excel数据的过程当中,经常会因为用户操作的问题或是Excel的自动转换将单元格数据转换为科学计数法形式表现,那么这时在后台读取数据并进行校验数据格式的过程当中有可能就会出现错误,或者是 ...

最新文章

  1. android studio 同类,让Android Studio的Project视图和Anroid视图类似
  2. Xcache安装与使用
  3. 一步步学习 Spring Data 系列之JPA(一)
  4. iOS开发中标签控制器的使用——UITabBarController
  5. Python的第二种数据类型——String(字符串)
  6. 数据包通过分层模型实现通信的过程
  7. 本地构建和自动化构建_如何构建最强大,最安全的家庭自动化系统
  8. WinCE BSP的BIB文件介绍
  9. Oracle Comment 获取并修改表或字段注释
  10. 如何用python处理txt_python处理txt文件操作
  11. “互联网+”大赛之AI创新应用赛题攻略:大胆脑洞,共绘智慧生活蓝图
  12. enter 默认搜索
  13. abap object-oriented–使用事件
  14. python加mysql加界面用代码写,使用python写一个监控mysql的脚本,在zabbix web上加上模板...
  15. 如果需要一个图形学算法
  16. c语言中rcu缩写,ICU、MICU、EICU、NICU、NCU、CCU、RCU,科室英文缩写大全
  17. 学计算机 数学日记,数学日记3篇
  18. Scott Mitchell 的ASP.NET 2.0数据操作教程之九:跨页面的主/从报表
  19. 搭建人人开源后台管理平台
  20. 时序分析:ARMA方法(平稳序列)

热门文章

  1. Java程序设计经典习题15道
  2. Boost--Graph
  3. java 爬虫 异步_Java 爬虫遇上数据异步加载,试试这两种办法!
  4. STM32核心板电路分析
  5. 倒计时或按任意键返回首页_客服魔方更新:首页界面大改版,催拍催付操作更方便...
  6. python pandas DataFrame 修改数据
  7. tf.keras.layers.Dense() 示例
  8. ubuntu18.04.4 获取当前文件路径
  9. 模型加速--LCNN: Lookup-based Convolutional Neural Network
  10. python同名包_可以使用两个同名的Python包吗?