目录

1、下载tmdb数据下载地址:TMDB 5000 Movie Dataset | Kaggle

2、下载两个文档(tmdb_5000_credits.csv和tmdb_5000_movies.csv)

3、项目POM文件

4、导入ES代码

5、新建ES索引


1、下载tmdb数据
下载地址:TMDB 5000 Movie Dataset | Kaggle

注意:注册账号需要翻墙才可以

2、下载两个文档(tmdb_5000_credits.csv和tmdb_5000_movies.csv)

整合文档将Excel进行整合,将需要的字段整合到move.csv

3、项目POM文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.6.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.imooc</groupId><artifactId>dianping</artifactId><version>0.0.1-SNAPSHOT</version><name>dianping</name><description>dianping spring boot java project</description><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compile.target>1.8</maven.compile.target></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>7.3.0</version></dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>7.3.0</version></dependency><dependency><groupId>org.elasticsearch.plugin</groupId><artifactId>transport-netty4-client</artifactId><version>7.3.0</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.58</version></dependency><dependency><groupId>com.opencsv</groupId><artifactId>opencsv</artifactId><version>4.2</version></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

4、导入ES代码

package com.imooc.dianping.service.impl;import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.imooc.dianping.service.SellerService;
import com.opencsv.CSVReader;
import org.elasticsearch.action.ActionListener;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.xcontent.XContentType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
import java.util.List;@Service
public class SellerServiceImpl implements SellerService {@AutowiredTransportClient transportClient;@Overridepublic void importData() {BulkRequest bulkRequest = new BulkRequest();int lineIndex = 0;try {InputStreamReader reader = new InputStreamReader(new FileInputStream("./tmdb_5000_movies.csv"), Charset.forName("UTF-8"));CSVReader csvReader = new CSVReader(reader, ',');//读取CSV文件List<String[]> allReader = csvReader.readAll();for (String[] records :allReader) {lineIndex++;if (lineIndex == 1) {continue;}System.out.println("第"+lineIndex+"行");if(StringUtils.isEmpty(records[20])){continue;}if(records[20].contains("[]")){continue;}JSONArray jsonArray = JSONArray.parseArray(records[20]);//获取文档字段String character = jsonArray.getJSONObject(0).getString("character");String name = jsonArray.getJSONObject(0).getString("name");JSONObject cast = new JSONObject();cast.put("character", character);cast.put("name", name);String date = records[11];if (StringUtils.isEmpty(date)) {date = "1970/01/01";}bulkRequest.add(new IndexRequest("movie", "_doc", String.valueOf(lineIndex)).source(XContentType.JSON,"title", records[17], "tagline", records[16], "release_date", date, "popularity", records[8], "cast", cast, "overview", records[7]));}reader.close();//将数据导入EStransportClient.bulk(bulkRequest, new ActionListener<BulkResponse>() {@Overridepublic void onResponse(BulkResponse bulkItemResponses) {System.out.println(bulkItemResponses);}@Overridepublic void onFailure(Exception e) {}});} catch (FileNotFoundException e) {System.out.println("第---->"+lineIndex+"行");e.printStackTrace();} catch (IOException e) {System.out.println("第---->"+lineIndex+"行");e.printStackTrace();}}
}

5、新建ES索引

PUT /movie
{"settings": {"number_of_shards": 1,"number_of_replicas": 1},"mappings": {"properties": {"title": {"type": "text","analyzer": "english"},"tagline": {"type": "text","analyzer": "english"},"release_date": {"type": "date","format": "8yyyy-MM-dd||yyyy-M-dd||yyyy-MM-d||yyyy-M-d"},"popularity": {"type": "double"},"cast": {"type": "object","properties": {"character": {"type": "text","analyzer": "standard"},"name": {"type": "text","analyzer": "standard"}}},"overview": {"type": "text","analyzer": "english"}}}
}

为了方便导入,源码和文档进行了整合,代码如下

abel/importData

TMDB数据导入elasticsearch7相关推荐

  1. Datax将Oracle数据导入ElasticSearch7完成教程

    网上关于此方面的内容较少,而且比较零散,正好项目中需要对ES7做预研,所以整理出了这篇文章. ElasticSearch版本为7.13.2 分如下几个主题: 1.Datax的es导入插件elastic ...

  2. MySQL数据库数据导入ES中

    需要安装 mysql数据导入ES中,用到的有logstash,ES,mysql的连接包.链接:https://pan.baidu.com/s/1xopMMUtPir12zrQfYcwBZg  提取码: ...

  3. Python:数据导入、爬虫:csv,excel,sql,html,txt

    ''' 来源:天善智能韦玮老师课堂笔记 作者:Dust 数据导入 ·导入csv数据csv是一种常见的数据存储格式,基本上我们遇到的数据都可以转为这种存储格式.在Python数据分析中,我们可以使用pa ...

  4. matlab在曲线给命名,matlab 利用xlsread画图,怎么将一组excel数据导入,通过matlab作图...

    Matlab 循环 for 语句 xlsread EXCEL表格数据导入 画图 Matlab的 xlsread() 函数可以将Excel数据到matlab工作空间,然后就可以根据读入据作图.下面给出操 ...

  5. Rocksdb 通过ingestfile 来支持高效的离线数据导入

    文章目录 前言 使用方式 实现原理 总结 前言 很多时候,我们使用数据库时会有离线向数据库导入数据的需求.比如大量用户在本地的一些离线数据,想要将这一些数据导入到已有的数据库中:或者说NewSQL场景 ...

  6. sql server 2008数据导入Oracle方法

    试了几种sql server数据导入Oracle的方法,发现还是sql server 的导入导出工具最好使.使用方法很简单,照着向导做就可以.不过使用中需要注意以下几点: 系统盘需要足够大.因为SSI ...

  7. 将excel中是数据导入数据库

    2019独角兽企业重金招聘Python工程师标准>>> 将excel中是数据导入数据库 1.利用excel生成sql语句: 列如: 1).insert: =CONCATENATE(& ...

  8. eplise怎么连接数据库_基于手机信令的大数据分析教程(一)数据导入数据库

    前言 该套教程以一个初学大数据的菜鸟视角,编写数据分析处理的整套流程.写得较为详(luo)细(suo),希望适用于任何城乡规划大数据的初学者.持续更新中,若有错误,望指正! 1.任务总纲 (1)职住数 ...

  9. SQLServer怎样把本地数据导入到远程服务器上(转载)

    平常用到mssql时间比较少,总是过一段时间就忘记应该怎么操作了.当要做mssq把本地数据导入到远程服务器的时候,就去网上搜索很久都没有图解的,所以今天自己收集一下免得下次又到处去找.希望对自己,同时 ...

  10. c#直接调用ssis包实现Sql Server的数据导入功能

    调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...

最新文章

  1. php视频录制插件,Chrome浏览器录屏扩展插件
  2. #65279导致页面顶部空白一行解决方法
  3. 深度学习保姆级入门教程 -- 论文+代码+常用工具
  4. select count(*) from返回的类型_数据分析面试题类型汇总
  5. 计算机专业审核作业指导书,专业审核作业指导书
  6. linux命令行改变时区,Linux命令行操作修改系统时区
  7. Raki的PRML阅读笔记 第1章:Introduction
  8. win10 linux声音,win10电脑突然没有声音的10种修复方法
  9. C语言中sprintf()函数的用法
  10. PostgreSQL视图和物化视图
  11. 如何使用 JS 实现带字母的导航城市列表,以及城市搜索
  12. 有了这些好看的流程图模板,你也可以画出漂亮的流程图
  13. 魔法门之英雄无敌3 android,魔法门之英雄无敌3 v0.86.04
  14. 关于读书的名人名言,让你体会读书的好处有哪些
  15. Linux 如何设置当前时间
  16. RRPP相切环配置示例
  17. Spring 夺命 35 问!
  18. 机器学习从零到入门 集成学习
  19. 2020央视元宵晚会 | 《你的样子》朗诵词
  20. Kernel源码笔记之调度:4.Fork系统调用

热门文章

  1. 伍德里奇计量经济学导论第6版笔记和课后习题答案
  2. javawebJSP餐厅点餐系统源码JSP点餐系统JSP网上订餐系统JSP在线订餐系统JSP外卖系统
  3. 孪生网络(1)_孪生网络的分类
  4. r语言熵权法求权重(真实案例完整流程)
  5. 安装广告拦截插件abp
  6. 人工智能 一种现代方法 第3章 通过搜索进行问题求解
  7. iptv错误代码2003什么意思_IPTV部分错误代码和原因解释
  8. svn 管理 mysql_svn web页面管理svnadmin部署
  9. SIMATIC HMI操作系统更新
  10. 【Plesk经验分享】无法创建备份怎么办?