ES应用场景及核心概念一
目录
ES基本安装及应用
安装
使用方式
这里在java中实现,首先引入客户端包
index alias的应用
同步DB数据到ES
ES核心概念
type类型弱化。
ES核心操作
ES基本安装及应用
通过lucene 进行发展而来,往上走,compass 最后开源 成为 es框架。
在大数据的情况,ES提供了分片 降低查询效率,提高存储的能力。
ES的使用场景: 给网站/APP添加搜索功能,存储、分析数据,管理、交互、分析空间信息,将ES用于GIS。
安装
- 添加es用户
useradd es
passwd es
- vi /etc/sysctl.conf
在文件最后面添加内容:
vm.max_map_count=262144
sysctl -p
一个jvm进程开启最多多少个线程。
vi /etc/security/limits.conf
配置一个java进程最多开启多少个文件
添加如下内容:
* hard nofile 65536
* soft nofile 65536
* soft nproc 2048
* hard nproc 4096
- vi /etc/security/limits.d/90-nproc.conf
修改如下内容:
* soft nproc 1024
#修改为
* soft nproc 4096
- 安装JDK
tar -zxvf jdk1.8.0_11.tar.tgz
vi ~/.bash_profile
PATH=$PATH:$HOME/bin
export JAVA_HOME=/home/es/jdk1.8.0_11
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:$PATH
export PATH
source ~/.bash_profile
- 上传安装包
elasticsearch-6.5.3.tar.gz
jdk1.8.0_11.tar.tgz
es安装包下载地址
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.2.tar.gz
对于es来说需要修改配置的 elasticsearch.yml 的集群配置名称
并且配置 操作系统不支持的拦截器 进行 配置好
后台启动 直接 elasticsearch -d
使用方式
es本身是基于resutful风格的访问格式,因此在 安装完成过后 请求 就使用 put get delete post 的请求 在 kibana中 使用查询 ,直接使用put 里面 包含 properties
在使用时,有用户order等。
其中也包含了mapping的概念,映射;这样来说 在mybatis 还是spring 等等框架中,mapping都时映射的概念。
在使用时,直接 通过 post 命令就可以 把 对应的名称和 字段,存在es中
在搜索方式,按照不同的
这里在java中实现,首先引入客户端包
<dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>6.4.0</version></dependency><!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch --><dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>6.4.0</version></dependency>
在使用时,需要指定配置类。 并指定好连接信息。
嗅探:客户端只需要指定一个ES服务端节点连接信息,连接上之后,如果开启了嗅探机制,
就会自动拉取服务端各节点的信息到客户端,从而避免我们需要配置一长串服务端连接信息
//配置信息Settings settings = Settings.builder().put("cluster.name", "es-study") //指定集群名称.put("client.transport.sniff", true) //自动嗅探.build();
构建client 指定ip、port
//构建clientTransportClient client = new PreBuiltTransportClient(settings);//指定ip、portclient.addTransportAddress(new TransportAddress(InetAddress.getByName("192.168.90.131"), 9300)); //9300为TCP通信端口
构建request , 构建搜索 search放入到request中 执行搜索
//构建requestSearchRequest request = new SearchRequest();request.indices("music");request.types("songs");//构建搜索SearchSourceBuilder search = new SearchSourceBuilder();search.query(QueryBuilders.matchQuery("songName", "take me to your heart"));search.timeout(new TimeValue(60, TimeUnit.SECONDS));//search放入到request中request.source(search);//执行搜索SearchResponse response = client.search(request).get();//获取命中的文档SearchHits hits = response.getHits();SearchHit[] hitArr = hits.getHits();System.out.println("搜索到" + hits.totalHits + "个文档");//处理命中的文档for (SearchHit hit : hitArr){//打印元信息System.out.println(hit.getType() + "," + hit.getScore());//打印原文档String sourceAsStrig = hit.getSourceAsString();System.out.println(sourceAsStrig);}
这都是基本请求方式,利用api,包括
index alias的应用
![](/assets/blank.gif)
db同步数据到es中,当同步完成之前,指向老的数据中。通过完成,在指向新的数据。保证同步过程是安全的。
在请求时,只需要 对别名进行操作就行。
执行场景,返回的数据,
使用alias可以切换索引,同时查询多个索引当中数据,以及当作视图处理。
同步DB数据到ES
![](/assets/blank.gif)
ES核心概念
![](/assets/blank.gif)
这个概念在es中有个问题,关系型数据库中 有两个表 如果有相同的字段,是完全隔离开的。通过表名是可以隔开,不会有任何关系, 如果 type 中 有两个相同 user_name字段。
type类型弱化。
![](/assets/blank.gif)
这个是不断的优化的过程,平滑的过度。
废除过后,升级 需要对数据进行转储,升级导致得问题。
![](/assets/blank.gif)
ES核心操作
- index操作:创建/删除index、开启/关闭index、添加/查看mapping、设置/查看settings
通过获取时,就可以拿到对应得详细信息
包括分片和副本的东西,也有这个概念。
在创建index时,设置副本 及分片的数量
包括获取时,可以看到读写的权限 的查看
对于配置来说 又 static 和dynamic 的 静态和 动态。 可以在数据跑的时候,就可以修改来区分的,例如设置 index .shard
关闭 index
打开index
对外提供服务的方式
读写权限
默认是都可以的。
执行下面的操作就可以禁止读取
禁止写入
索引模板
PUT /_template/music2
{"template" : "music*","order" :3,"settings" : {"number_of_shards" : 3},"mappings":{"_default_" : {"properties" : {"songName" : { "type" : "text"} }}}
}
- document操作:索引/查询/更新/删除document、搜索document,执行script
索引文档
需要显示指定索引文档id。
使用post方法 就可以自动生成索引文档的id
明确查询文档
GET /music_v4/songs/5
删除文档
DELETE /music_v4/songs/5
索引文档
- mapping操作:创建mapping、查询mapping、修改mapping
ES应用场景及核心概念一相关推荐
- Elasticsearch(一)——Es安装(三个必安工具、安装各种类型分词器)、Es 十大核心概念、通过 Kibana 操作 Es(中文分词、Es各种索引命令操作)
Elasticsearch(一)--Es安装(三个必安工具.安装各种类型分词器).Es 十大核心概念.通过 Kibana 操作 Es(中文分词.Es各种索引命令操作) 一.Elasticsearch ...
- ElasticSearch第十讲 ES的核心概念以及什么是倒排索引和分析器
核心概念 索引 index 一个索引就是一个拥有几分相似特征的文档的集合.比如说,可以有一个客户数据的索引,另一个产品目录的索引,还有一个订单数据的索引.一个索引由一个名字来标识(必须全部是小写字母的 ...
- Elasticsearch 入门 核心概念 数据结构 分词器 javaAPI
ElasticSearch 1-今日内容 2-初识ElasticSearch 2.1-基于数据库查询的问题 2.2-倒排索引 2.2.1 评分TF/IDF/BM25计算 2.3-ES存储和查询的原理 ...
- 聊聊 Pulsar: Pulsar 的核心概念与基础架构
一.Pulsar 介绍 Apache Pulsar 是 Apache 软件基金会的顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户 ...
- 2021年大数据ELK(五):Elasticsearch中的核心概念
全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 Elasticsearch中的核心概念 一.索引 index 二 ...
- cocos2d-x一些核心概念介绍
cocos2d-x一些核心概念介绍 Cocos2d-x中有很多概念,这些概念很多来源于动画.动漫和电影等行业,例如:导演.场景和层等概念,当然也有些有传统的游戏的概念.Cocos2d-x中核心概念:导 ...
- nacos 本地测试_微服务架构系列之Nacos 配置核心概念
上次讲了<微服务架构之Nacos配置中心之配置MySQL数据库>,本次讲述Nacos 配置核心概念.原作者:哈喽沃德先生,谢谢关注哈喽沃德先生. 1.配置 为什么需要配置?概念. 在系统开 ...
- Kafka:Kafka核心概念
1 消息系统简介 1.1 为什么要用消息系统 ? 解耦 各位系统之间通过消息系统这个统一的接口交换数据,无须了解彼此的存在: 冗余 部分消息系统具有消息持久化能力,可规避消息处理前丢失的风险: 灵活性 ...
- Webpack核心概念解析
原文链接:banggan.github.io/2019/05/09/- Webpack核心概念解析 终于忙完了论文,可以愉快的开始学习了,重拾起重学前端.webpack以及Vue的源码解读作为入职前的 ...
最新文章
- ASP.NET输出JSON格式数据
- 树形结构:递归转化为迭代,万能通用方法,分治策略基于栈的实现
- 单片机c语言参考文献最新,[2018年最新整理]10个单片机C语言实例.doc
- 京东集团副总裁王楠:数智化是打造国际消费中心城市的必由之路
- 子网掩码(subnet mask)与默认网关(default gateway)
- 洛谷P1306 斐波那契公约数
- 火星坐标系(高德)和84坐标系互换
- 做项目管理需要哪些技能?
- sql left()函数
- mysql修改金钱_mysqli修改数据库
- MySQL 数据库的基本类型详解(04)
- Java总结IO篇之字符流
- 如何判断如何判断RS232线是直连还是交叉连线
- 如何定制allure报告的logo
- Content Provider (内容提供者)
- Winsock协议目录
- 离散数学-代数系统总结3-同态
- Android实现实时视频聊天功能|源码 Demo 分享
- 给自己定个小目标 --java
- imba命令_Imba简介:兼容JavaScript的语言,可快速实现DOM更新
热门文章
- [百分浏览器-centbrowser]不能播放视频处理方法
- osgearth加载国界线、省界线、城市线
- 鲲鹏云服务器运行python项目_鲲鹏云实验-Python+Jupyter机器学习基础环境
- 无线串口服务器的配置与连接调试,使用WIFI串口服务器USR-WIFI232-604与485读卡器实现通信...
- Solved Issues
- java Date days_JAVA的Date类与Calendar类(常用方法)
- 开发笔记-内表指针赋值
- 银联 backreceive.php,银联支付报文格式错误5100030
- 谈谈Java对象的生命周期
- CSV文件转换成shp文件后通过IDW法插值处理生成栅格