Elasticsearch简介
官方介绍:Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 作为 Elastic Stack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。
全文搜索属于最常见的需求,开源的 Elasticsearch 是目前全文搜索引擎的首选。
可以快速地存储、搜索和分析海量数据。维基百科、Stack Overflow、GitHub 都在采用。
Elatic 的底层是开源库吧Lucene。但是,你没法直接用,必须自己写代码调用它的接口,Elastic 是 Lunce 的封装,提供了 REST API 的操作接口,开箱即用
REST API:天然的跨平台
官网文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
基本概念
index(索引)
动词,相当于 MySQL 中的 insert;
名词,相当于MySQL 中的 DataBase;
Type(类型)
在 Index(索引)中,可以定义一个或多个类型;
类似于 MySQL 中的 Table,每一种类型的数据放在一起;
关系型数据库中两个数据表示是独立的,即使他们里面有相同名称的列也不影响使用,但ES中不是这样的。 elasticsearch是基于Lucene开发的搜索引擎,而ES中不同type下名称相同的filed最终在Lucene中的处理方式是一样的。 两个不同type下的两个user_name,在ES同一个索引下其实被认为是同一个filed,你必 须在两个不同的type中定义相同的filed映射。否则,不同type中的相同字段名称就会在处理中出现冲突的情况,导致Lucene处理效率下降。 去掉type就是为了提高ES处理数据的效率。 Elasticsearch 7.x URL中的type参数为可选。比如,索引一个文档不再要求提供文档类 Elasticsearch 8.x 不再支持URL中的type参数。 建议:将索引从多类型迁移到单类型,每种类型文档一个独立索引
Document(文档)
保存在某个索引(index)下,种类型(Type)的一个数据(Document),文档是 JSON 格式的,Document 就像是 MySQL 中某个 Table 里面的内容;
代码语言:javascript复制{
"user": "张三",
"title": "工程师",
"desc": "数据库管理"
}
同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同,这样有利于提高搜索效率。
Elasticsearch安装
存储和检索数据
docker pull elasticsearch:7.4.2
可视化检索数据
docker pull kibana:7.4.2
准备工作
代码语言:javascript复制mkdir -p /mydata/elasticsearch/config # 用来存放配置文件
mkdir -p /mydata/elasticsearch/data # 数据
echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml # 允许任何机器访问
chmod -R 777 /mydata/elasticsearch/ # 设置elasticsearch文件可读写权限
创建实例
代码语言:javascript复制docker run --name=elasticsearch
-p 9200:9200 -p 9300:9300
--restart=always
-e "discovery.type=single-node"
-e ES_JAVA_OPTS="-Xms64m -Xmx256m"
-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
注意:
-e ES_JAVA_OPTS="-Xms64m -Xmx128m"
测试环境下,设置 ES 的初始内存和最大内存,否则可能导致内存过大启动不了 ES
启动成功后,访问 ip 9200
,例如:192.168.152.129:9200
若启动失败,可以尝试使用 docker logs elasticsearch
查看错误并解决它。
安装 Kibana
代码语言:javascript复制docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.37.133:9200 -p 5601:5601 -d kibana:7.4.2
代码语言:javascript复制docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.152.129:9200 -p 5601:5601 -d kibana:7.4.2
-e ELASTICSEARCH_HOSTS=你的elasticsearch地址
启动需要稍微等待一会,然后访问 192.168.152.129:5601
版权属于:乐心湖's Blog
本文链接:https://cloud.tencent.com/developer/article/1774968
声明:博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!