0 ElasticSearch
注意事项
- 需要jdk环境1.7以上
- Elasticsearch Kibana 的下载地址统一为https://www.elastic.co/downloads/
- 问题排查可以登录https://discuss.elastic.co/c论坛查找相关信息
- 只允许普通用户操作,不允许root用户
- 注意:因为elasticsearch有远程执行脚本的功能所以容易中木马病毒,所以不允许用root用户启动,root用户是起不来的,赋权限,用一般的用户启动
0 集群搭建
1.安装unzip yum install unzip
2.所有集群节点创建新用户 useradd el
3.所有集群节点给el用户设置密码passwd el方便记忆使用的rootroot
4.所有集群节点创建安装目录和赋予使用权限--》并转换用户
mkdir -p /opt/es
ll /opt/
chown el:el /opt/es
ll /opt/
su el


5.上传安装部署包到master
6.解压到刚刚创建的目录unzip elasticsearch-2.2.1.zip -d /opt/es/(注意是否是普通用户解压的)
7.修改conf
cd elasticsearch-2.2.1/config/
vim elasticsearch.yml


末尾增加防脑裂:
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: ["192.168.74.10","192.168.74.11", "192.168.74.12"]
discovery.zen.ping_timeout: 120s
client.transport.ping_timeout: 60s

8.目前已经配置好了,但是不忙分发,加个可视化插件

9.分发(输入yes再输入上面设置的el密码)
scp -r elasticsearch-2.2.1/ el@slave1:`pwd`
scp -r elasticsearch-2.2.1/ el@slave2:`pwd`
10.修改2个从机器的配置文件
vim /opt/es/elasticsearch-2.2.1/config/elasticsearch.yml
- slave1


- slave2


11.配置环境变量
vim ~/.bashrc
#Elasticsearch
EL_HOME=/opt/es/elasticsearch-2.2.1
PATH=$PATH:$EL_HOME/bin
source ~/.bashrc
12.集群所有节点执行脚本启动el集群
13.如果能看见如下信息就是启动成功了
- master

- slave1

- slave2

14.使用浏览器查看(对比原生态的和插件的)

1 IK分词器安装
1.找到安装el的目录下的插件目录,上传IK包
2.解压unzip elasticsearch-analysis-ik-1.8.0.zip
3.修改配置文件vim + plugin-descriptor.properties
4.回到plugins目录,分发
scp -r ik/ el@slave1:`pwd`
scp -r ik/ el@slave2:`pwd`
2 使用
2.1 CURL命令
- 简单认为是可以在命令行下访问url的一个工具
- curl是利用URL语法在命令行方式下工作的开源文件传输工具,使用curl可以简单实现常见的get/post请求。
- curl
- -X 指定http请求的方法(HEAD GET POST PUT DELETE)
- -d 指定要传输的数据
2.1.1创建索引库curl -XPUT http://192.168.74.10:9200/hello/


2.1.2删除索引库curl -XDELETE http://192.168.74.10:9200/hello1/
2.1.3数据操作-普通添加
curl -XPOST http://192.168.74.10:9200/hello/employee -d '
{
"first_name" : "bin",
"age" : 33,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}'


curl -XPOST http://192.168.74.10:9200/hello/employee -d '
{
"first_name" : "gob bin",
"age" : 43,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}'

2.1.4数据操作-追加列
curl -XPOST http://192.168.74.10:9200/hello/employee -d '
{
"first_name" : "pablo",
"age" : 33,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ],
"sex": "man",
"last_name" : "bin"
}'

2.1.5数据操作-put指定id添加(如果是新的id就是创建,如果是老的id那么更新)
curl -XPUT http://192.168.74.10:9200/hello/employee/1 -d '
{
"first_name" : "god bin",
"last_name" : "pang",
"age" : 42,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}'

2.1.6数据操作-根据document的id来获取数据
curl -XGET http://192.168.74.10:9200/hello/employee/1
curl -XGET http://192.168.74.10:9200/hello/employee/1?pretty

2.1.7数据操作-根据field来查询数据:
curl -XGET http://192.168.74.10:9200/hello/employee/_search?q=first_name="bin"
2.1.8数据操作-根据field来查询数据:match
curl -XGET http://192.168.74.10:9200/hello/employee/_search?pretty -d '
{
"query":
{"match":
{"first_name":"bin"}
}
}'

- 对多个field发起查询:multi_match
curl -XGET http://192.168.74.10:9200/hello/employee/_search?pretty -d '
{
"query":
{"multi_match":
{
"query":"bin",
"fields":["last_name","first_name"],
"operator":"and"
}
}
}'

2.1.9数据操作-多个term对多个field发起查询:bool(boolean)
- 组合查询,must,must_not,should
- must + must : 交集
- must +must_not :差集
- should+should : 并集
curl -XGET http://192.168.74.10:9200/hello/employee/_search?pretty -d '
{
"query":
{"bool" :
{
"must" :
{"match":
{"first_name":"bin"}
},
"must" :
{"match":
{"age":33}
}
}
}
}'
curl -XGET http://192.168.74.10:9200/hello/employee/_search?pretty -d '
{
"query":
{"bool" :
{
"must" :
{"match":
{"first_name":"bin"}
},
"must_not" :
{"match":
{"age":33}
}
}
}
}'
curl -XGET http://192.168.74.10:9200/hello/employee/_search?pretty -d '
{
"query":
{"bool" :
{
"must_not" :
{"match":
{"first_name":"bin"}
},
"must_not" :
{"match":
{"age":33}
}
}
}
}'
2.1.10数据操作-区间查询
查询first_name=bin的,年龄不能在20岁到33岁之间的
curl -XGET http://192.168.74.10:9200/hello/employee/_search -d '
{
"query":
{"bool" :
{
"must" :
{"term" :
{ "first_name" : "bin" }
}
,
"must_not" :
{"range":
{"age" : { "from" : 20, "to" : 33 }
}
}
}
}
}'
2.1.11修改配置
curl -XPUT 'http://192.168.74.10:9200/test2/' -d'{"settings":{"number_of_replicas":2}}'

curl -XPUT 'http://192.168.74.10:9200/test3/' -d'{"settings":{"number_of_shards":3,"number_of_replicas":3}}'

0 ElasticSearch的更多相关文章
- SpringBoot2.0+ElasticSearch网盘搜索实现
1.ES是如何实现分布式高并发全文检索 2.简单介绍ES分片Shards分片技术 3.为什么ES主分片对应的备分片不在同一台节点存放 4.索引的主分片定义好后为什么不能做修改 5.ES如何实现高可用容 ...
- ElasticSearch 5.0及head插件安装
一.elasticsearch安装配置 1.官网下载源码包 https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.0 ...
- Linux下,非Docker启动Elasticsearch 6.3.0,安装ik分词器插件,以及使用Kibana测试Elasticsearch,
Linux下,非Docker启动Elasticsearch 6.3.0 查看java版本,需要1.8版本 java -version yum -y install java 创建用户,因为elasti ...
- ELK(elasticsearch+logstash+kibana)入门到熟练-从0开始搭建日志分析系统教程
#此文篇幅较长,涵盖了elk从搭建到运行的知识,看此文档,你需要会点linux,还要看得懂点正则表达式,还有一个聪明的大脑,如果你没有漏掉步骤的话,还搭建不起来elk,你来打我. ELK使用elast ...
- Elasticsearch 7.4.0官方文档操作
官方文档地址 https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html 1.0.0 设置Elasticsea ...
- 从 0 使用 SpringBoot MyBatis MySQL Redis Elasticsearch打造企业级 RESTful API 项目实战
大家好!这是一门付费视频课程.新课优惠价 699 元,折合每小时 9 元左右,需要朋友的联系爱学啊客服 QQ:3469271680:我们每课程是明码标价的,因为如果售价为现在的 2 倍,然后打 5 折 ...
- 如何在Elasticsearch中安装中文分词器(IK+pinyin)
如果直接使用Elasticsearch的朋友在处理中文内容的搜索时,肯定会遇到很尴尬的问题--中文词语被分成了一个一个的汉字,当用Kibana作图的时候,按照term来分组,结果一个汉字被分成了一组. ...
- jar hell & elasticsearch ik 版本问题
想给es 安装一个ik 的插件, 我的es 是 2.4.0, 下载了一个版本是 1.9.5, [2016-10-09 16:56:26,248][INFO ][node ] [node-2] init ...
- elasticsearch5.0及head插件安装
这个瞎jb整了半天.准备把es2.4升级到5.0,结果老报错 环境:centos6.5+es2.4是ok的换成es5就出毛病.也不能说啥 ,我用的是最新的 源码解压启动时候报错,具体错误for ...
随机推荐
- Spring5源码深度分析(二)之理解@Conditional,@Import注解
代码地址: 1.源码分析二主要分析的内容 1.使用@Condition多条件注册bean对象2.@Import注解快速注入第三方bean对象3.@EnableXXXX 开启原理4.基于ImportBe ...
- hgoi#20190515
T1-Pie or die Volodya和Vlad在玩下面的这个游戏.这里有k个派,分布在n×m的板子上.每一回合Volodya移动一个派到这个派边界的格子,如果这个派在板子的边界,Volodya就 ...
- asp.net core系列 66 Dapper介绍--Micro-ORM
一.概述 目前对于.net的数据访问ORM工具很多,EF和EF Core是一个重量级的框架.最近在搭建新的项目架构,来学习一下轻量级的数据访问ORM工具Dapper.Dapper支持SQL Serve ...
- GIS热力图制作与位置大数据分析
最近有很多朋友咨询位置数据.热力图等等东西,我一一进行了解答,但是个人精力实在有限,特写一个博客进行详细技术说明,其实这个东西位置数据.百度地图POI.高德地图POI等数据爬取.存储都较为简单,热力图 ...
- vue路由传参query和params的区别(详解!)
1.query使用path和name传参都可以,而params只能使用name传参. query传参: 页面: this.$router.push({ path:'/city',name:'City' ...
- 阅读HashMap——jdk7时遇到的问题记录
今天看hashMapJDK7版,水很深,看的也痛苦~推一个博主:http://www.cnblogs.com/xrq730/ 看了源码,才发现自己基础真的很薄弱,虽然当初也是下了很多的经历,但是毕竟大 ...
- guava cache大量的WARN日志的问题分析
一.问题显现 2019-04-21 11:16:32 [http-nio-4081-exec-2] WARN com.google.common.cache.LocalCache - Exceptio ...
- 微信小程序 CSS border-radius元素 overflow:hidden失效问题 iPhone ios 苹果兼容问题 伪类元素
同事找我解决一个问题 说安卓圆角没问题 苹果上失效了 我一看 其实就是没做兼容上图给你们看看 有没有看出来 其实就是父级设置圆角属性失效 父元素使用border-radius和overflow:hid ...
- redis 命令的调用过程
参考文献: Redis 是如何处理命令的(客户端) 我是如何通过添加一条命令学习redis源码的 从零开始写redis客户端(deerlet-redis-client)之路--第一个纠结很久的问题,r ...
- 【小家Spring】聊聊Spring中的数据绑定 --- BeanWrapper以及内省Introspector和PropertyDescriptor
#### 每篇一句 > 千古以来要饭的没有要早饭的,知道为什么吗? #### 相关阅读 [[小家Spring]聊聊Spring中的数据转换:Converter.ConversionService ...