Elasticesearch学习记录

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 主要记录从自建安装,以及后期使用阿里云的Elasticesearch,相关过程中的一些常用命令(导出、导入等mapping结构)涉及到Elasticesearch5.4版本迁移Elasticesearch7版本过程中的一些步骤
一. Elasticsearch安装
1. 创建网络esnetwork
$ docker network create esnetwork
2. elasticsearch安装:
$ docker run -d --name elasticsearch --net esnetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node elasticsearch-ik:1.0
3. 为了方便使用docker安装,没有做数据持久化
##todo:数据持久化
4. 安装分词(注意版本)
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.1/ elasticsearch-analysis-ik-7.1.1.zip
5. 在elasticsearch服务器配置文件种增加一下内容,避免跨域访问不到页面 
$ http.cors.enabled: true
$ http.cors.allow-origin:"*"
二. logstash安装
$ docker run -d--name=logstash--net esnetwork-p5044:5044 -V /data/lelastic/logstash:/usr/share/logstash -v 
/data/lelastic/test.txt:/var/log/messages logstash:7.1.1
##为了省事把logstash文件都映射出来了,其实只需要映射:/usr/share/logstash/config即可
##必须安装logstash input jdbc
##安装/usr/share/logstash/mysql-connector-java-5.1.44.jar
三. Kibana安装
##kibana功能太多,用不了这么多暂时,我用Elasticvue操作
$ docker run -d--name=kibana --network=esnetwork --restart=alwavs -v /data/elastic/kibana/config:/usr/share/kibana/config -p 5601:5601 kibana:7.1.1
#Elasticvue: elasticsearch客户端、edge浏览器产检,对标es-head,感觉比es-head好用
四. 常用命令(待补充) 
1. ES curl命令整理
$ curl -XPUT es.dev:9200/test_2001 #创建索引
$ curl -XDELETE es.dev:9200/test_2001 #删除索引
$ curl -XGET es.dev:9200/test_2001/_mapping #查看mapping结构
$ curl -XGET es.dev:9200/_cat/indices #查看所有索引
$ curl --user 用户:密码 -XGET IP:9200/索引名 #查看索引(阿里云)
$ curl -H "Content-Type: application/json" -XPUT http://es.dev:9200/idx_book?pretty -d '{mapping结构内容}' #创建mapping结构
#用可视化相关的工具会容易操作很多
五. ES5.4版本迁移到阿里云ES7版本
1. 首先导出相关索引的mapping结构
$ elasticdump --input=http://ip:9200/索引名 --output=索引名.json --type=mapping  #导出

$ elasticdump --input=索引名.json --output http://ip:9200/索引名 --type=mapping  #导入
2. 导出索引数据
$ elasticdump --input=http://ip:9200/索引名 --output=索引名.json --type=data  --timeout=40000 --limit=1000 --support-big-int #导出数据

$ elasticdump --input=索引名.json --output=http://用户:密码@IP:9200/索引名 --type=data --timeout=40000 --limit=1000 --support-big-int #导入数据,阿里云需要用户密码认证
3. 涉及以下几个需要注意的地方
3.1 因为版本的差异过大,迁移mapping的时候,会发现丢失分词,以及导入mapping的时候提示导入成功,查询却不显示mapping结构,阿里云分词是ik_max_word_stemme,5.4版本我们用的是ik_max_word和  ik_smart这两种
3.2 首先需要导出mapping后手动修改mapping结构里的分词类型,没有可视化工具的前提下,会出现上面所说的导入mapping结构不显示问题,需要用命令去创建mapping结构 curl -H "Content-Type: application/json" -XPUT http://es.dev:9200/idx_book?pretty -d '{mapping结构内容}'
3.3 mapping结构创建成功的前提下再去导入数据,就不会出现数据对不上的问题
相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
5月前
|
存储 算法 Oracle
不好意思!耽误你的十分钟,JVM内存布局还给你
先赞后看,南哥助你Java进阶一大半在2006年加州旧金山的JavaOne大会上,一个由顶级Java开发者组成的周年性研讨会,公司突然宣布将开放Java的源代码。于是,下一年顶级项目OpenJDK诞生。Java生态发展被打开了新的大门,Java 7的G1垃圾回收器、Java 8的Lambda表达式和流API…大家好,我是南哥。一个Java学习与进阶的领路人,相信对你通关面试、拿下Offer进入心心念念的公司有所帮助。
不好意思!耽误你的十分钟,JVM内存布局还给你
|
8月前
|
存储 监控 Java
三万字长文:JVM内存问题排查Cookbook
本文主要系统性地整理了排查思路,为大家遇到问题时提供全面的排查流程,不至于漏掉某些可能性误入歧途浪费时间。
|
架构师 Java 程序员
入职没见过P8领导,3月后他带着份769页虚拟机笔记出关了
Java是目前用户最多、使用范围最广的软件开发技术,Java的技术体系主要由支撑Java程序运行的虚拟机、提供各开发领域接口支持的Java类库、Java编程语言及许许多多的第三方Java框架(如Spring、 MyBatis等) 构成。在国内,有关Java类库API、Java语言语法及第三方框架的技术资料和书籍非常丰富,相比而言,有关Java虚拟机的资料却显得异常贫乏。
连续仨月霸占牛客榜首!京东T8呕心巨作:700页JVM虚拟机实战手册
虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
|
存储 缓存 Java
《深入理解Java虚拟机》读书笔记(一)--java内存区域划分
《深入理解Java虚拟机》读书笔记(一)--java内存区域划分
67 0
|
存储 缓存 Java
程序员需要了解的硬核知识之磁盘
此篇文章是 《程序员需要了解的硬核知识》系列第四篇,历史文章请戳 程序员需要了解的硬核知识之内存 程序员需要了解的硬核知识之CPU 程序员需要了解的硬核知识之二进制 我们大家知道,计算机的五大基础部件是 存储器、控制器、运算器、输入和输出设备,其中从存储功能的角度来看,可以把存储器分为内存和 磁盘,内存我们上面的文章已经介绍过了,那么此篇文章我们来介绍一下磁盘以及内存和磁盘的关系。
126 0
程序员需要了解的硬核知识之磁盘
|
存储 Java
手把手教你认识下 JVM 的内存划分,再记不住就真的没办法了
Java 在运行时会将内存划分为若干个区域,粗略的可以将内存划分为堆区和栈区,堆区主要存储 Java 对象。栈区主要记录对象的引用地址。
手把手教你认识下 JVM 的内存划分,再记不住就真的没办法了
|
存储 运维 Shell
linux运维之磁盘利用率100%教你做人
linux运维之磁盘利用率100%教你做人
545 0
linux运维之磁盘利用率100%教你做人
|
存储 算法 Java
万万没想到,JVM内存区域的面试题也可以问的这么难?
万万没想到,JVM内存区域的面试题也可以问的这么难?
万万没想到,JVM内存区域的面试题也可以问的这么难?
|
监控 算法 Java
全网最硬核 JVM TLAB 分析 5. TLAB 源代码全解析(上)
全网最硬核 JVM TLAB 分析 5. TLAB 源代码全解析(上)

热门文章

最新文章