ElasticSearch入门
1:概念
------------------------------
类比mysql基本概念
mysql -> es
库 -> 索引
表 -> 类型
记录 -> 文档
字段 -> 属性
2:安装
--------------------------------
docker镜像下载:
存储和检索数据
docker pull elasticsearch:7.4.2
el可视化:
docker pull kibana:7.4.2
创建el配置文件目录
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
chmod -R 777 /mydata/elasticsearch/
创建es配置文件,写入配置:所有外部都能访问
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
启动容器(9200外部访问端口,9300分布式集群端口,单节点运行,xms初始内存,xmx最大内存
,-v挂载目录,-d 镜像启动)
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
访问:ip:9200,出现如下代表安装启动成功
{
"name" : "236fffb1855a",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "jgdMlCOLQSqFw0KmDLJIhw",
"version" : {
"number" : "7.4.2",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "2f90bbf7b93631e52bafb59b3b049cb44ec25e96",
"build_date" : "2019-10-28T20:40:44.881551Z",
"build_snapshot" : false,
"lucene_version" : "8.2.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
启动kibana(可视化工具)
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://ip:9200 -p 5601:5601 -d kibana:7.4.2
启动等待时间要一小会。访问ip:5601看到界面即成功
安装支持中文的分词器 ik
plugs目录下:
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
解压(plugs目录下新建ik文件夹解压到ik里面)
unzip elasticsearch-analysis-ik-7.4.2.zip
重启
docker restart elasticsearch
测试:
POST _analyze
{
"analyzer": "ik_smart",
"text":"小明很开心"
}
配置自定义分词字典
plugins/ik/config/IKAnalyzer.cfg
<!--用户可以在这里配置远程扩展字典 -->
<!-- <entry key="remote_ext_dict">words_location</entry> -->
words_location改为自定义字典访问地址
重启el
docker restart elasticsearch
3:基本使用
---------------------------------------
请求方式get:
/_cat/nodes:查看所有节点
/_cat/health:查看es健康状况
/_cat/master:查看主节点
/_cat/indices:查看所有索引(mysql->database)
批量导入数据地址:
https://raw.githubusercontent.com/elastic/elasticsearch/master/docs/src/test/resources/accounts.json
POST /bank/account/_bulk
......
倒排索引。对分词条件进行 高到底 命中分排序