ElasticSearch-全文检索(入门)
在看这篇博客之前,说明以下,这篇博客只是对es和Kibana的安装,还有对es的一些简单的使用,并不会对理论进行过多的介绍,谢谢大家的理解。
1、安装(挂载方式)
(1)拉取镜像
1 docker pull elasticsearch:7.4.2 存储和检索数据 2 docker pull kibana:7.4.2
(2)创建数据挂载文件夹
1 mkdir -p /mydata/elasticsearch/config 2 mkdir -p /mydata/elasticsearch/data
(3)设置所有ip都可以访问
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
(4)修改挂载文件夹的属性
1 chmod -R 777 /mydata/elasticsearch/
(5)允许以下命令(注意这些命令运行时,去掉换行,放在一行执行,否则会报错)
1 docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type"="single-node" 2 -e "ES_JAVA_OPTS"="-Xms64m -Xmx512m" \ 3 -v/mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml\ 4 -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ 5 -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ 6 -d elasticsearch:7.4.2
注意
-e ES_JAVA_OPTS="-Xms64m -Xmx256m" \ 测试环境下,设置 ES 的初始内存和最大内存,否则导
致过大启动不了 ES。
(6)安装Kibana
1 docker run --name kibana -e ELASTICSEARCH_HOSTS=ip+端口 -p 5601:5601 -d kibana:7.4.2
2、实际操作
(1)创建表结构(此步也可以省略,直接插入数据也是可以的,但是可能首次插入可能会影响插入速度)
1 PUT /account 2 { 3 "mappings": { 4 "properties": { 5 "account_number": { 6 "type": "integer" 7 }, 8 "balance": { 9 "type": "integer" 10 }, 11 "firstname":{ 12 "type": "text" 13 }, 14 "lastname":{ 15 "type": "text" 16 }, 17 "age": { 18 "type": "integer" 19 }, 20 "gender":{ 21 "type": "keyword" 22 }, 23 "address":{ 24 "type": "text" 25 }, 26 "employer":{ 27 "type": "text" 28 }, 29 "email":{ 30 "type": "text" 31 }, 32 "city":{ 33 "type": "text" 34 }, 35 "state":{ 36 "type": "keyword" 37 } 38 } 39 } 40 }
(2)插入数据
a.批量插入数据
1 POST account/_bulk 2 {"index":{"_id":"1"}} 3 {"account_number":1,"balance":39225,"firstname":"Amber","lastname":"Duke","age":32,"gender":"M","address":"880 Holmes Lane","employer":"Pyrami","email":"amberduke@pyrami.com","city":"Brogan","state":"IL"} 4 {"index":{"_id":"6"}} 5 {"account_number":6,"balance":5686,"firstname":"Hattie","lastname":"Bond","age":36,"gender":"M","address":"671 Bristol Street","employer":"Netagy","email":"hattiebond@netagy.com","city":"Dante","state":"TN"} 6 {"index":{"_id":"13"}} 7 {"account_number":13,"balance":32838,"firstname":"Nanette","lastname":"Bates","age":28,"gender":"F","address":"789 Madison Street","employer":"Quility","email":"nanettebates@quility.com","city":"Nogal","state":"VA"} 8 {"index":{"_id":"18"}} 9 {"account_number":18,"balance":4180,"firstname":"Dale","lastname":"Adams","age":33,"gender":"M","address":"467 Hutchinson Court","employer":"Boink","email":"daleadams@boink.com","city":"Orick","state":"MD"} 10 {"index":{"_id":"20"}} 11 {"account_number":20,"balance":16418,"firstname":"Elinor","lastname":"Ratliff","age":36,"gender":"M","address":"282 Kings Place","employer":"Scentric","email":"elinorratliff@scentric.com","city":"Ribera","state":"WA"} 12 {"index":{"_id":"25"}} 13 {"account_number":25,"balance":40540,"firstname":"Virginia","lastname":"Ayala","age":39,"gender":"F","address":"171 Putnam Avenue","employer":"Filodyne","email":"virginiaayala@filodyne.com","city":"Nicholson","state":"PA"}
b.单个插入(如果带id,就会以传入的id为主键,否则会自己生成主键id)
POST account/_doc/3
{"account_number":3,"balance":40540,"firstname":"Virginia","lastname":"Ayala","age":39,"gender":"F","address":"171 Putnam Avenue","employer":"Filodyne","email":"virginiaayala@filodyne.com","city":"Nicholson","state":"PA"}
执行结果:

(3)修改数据(与插入数据相同,有id存在就更新,id不存在就插入)
a. POST
1 POST account/_doc/3 2 {"account_number":3,"balance":40540,"firstname":"Virginia","lastname":"Ayala","age":39,"gender":"F","address":"171 Putnam Avenue","employer":"Filodyne","email":"virginiaayala@filodyne.com","city":"Nicholson","state":"PA"}
b.PUT
1 PUT account/_doc/3 2 {"account_number":3}
查询结果:

两种方式都是先删掉数据,再插入
不同:POST 操作会对比源文档数据,如果相同不会有什么操作,文档 version 不增加
PUT 操作总会将数据重新保存并增加 version 版本;
带_update 对比元数据如果一样就不进行任何操作。
看场景;
对于大并发更新,不带 update;
对于大并发查询偶尔更新,带 update;对比更新,重新计算分配规则。
c. 带update
POST account/_doc/25/_update { "doc" : {"balance":3} }
结果截图:

(4)主键查找单条数据
1 GET account/_doc/25
如本文有侵权行为,请及时与本人联系,多多包涵!
小生初出茅庐,多多指教!
本文来自博客园,作者:it-小林,转载请注明原文链接:https://www.cnblogs.com/linruitao/p/15002393.html

浙公网安备 33010602011771号