elasticsearch
# 介绍
提示
Elasticsearch is a distributed document store. Instead of storing information as rows of columnar data, Elasticsearch stores complex data structures that have been serialized as JSON documents. When you have multiple Elasticsearch nodes in a cluster, stored documents are distributed across the cluster and can be accessed immediately from any node.
- Distributed Document Store(分布式文档存储)
- Complex Data Structures(复杂数据结构)
- Clustered Architecture(集群架构)
- Immediate Access(即时访问)
以下是 Elasticsearch 的主要特点和功能:
全文搜索: Elasticsearch 是一个全文搜索引擎, 可以对大量文本数据进行高效的全文搜索。它支持复杂的查询, 包括模糊搜索、通配符搜索、短语匹配等
实时数据: Elasticsearch 具有实时性, 能够在数据被索引后立即提供查询结果。这使得它非常适合用于监控、日志分析和应用程序性能分析等实时场景
分布式架构: Elasticsearch 是一个分布式系统, 可以水平扩展以处理大规模的数据和高并发查询。它将数据分散存储在多个节点上, 提供高可用性和容错性
多种数据类型支持: Elasticsearch 支持多种数据类型, 包括文本、数字、日期、地理位置等, 可以用于处理各种类型的数据
复杂查询: Elasticsearch 使用结构化的 JSON 查询语言(DSL), 允许用户执行各种复杂的查询操作, 包括过滤、聚合、排序、分组和分页等
近似搜索: Elasticsearch 支持近似搜索算法, 如模糊搜索和近似字符串匹配, 使用户能够在不完全匹配的情况下找到相关的结果
地理空间搜索: Elasticsearch 具有强大的地理信息系统(GIS)支持, 可以用于地理空间数据的搜索和分析, 包括地理坐标点、多边形和距离计算
数据聚合: Elasticsearch 具有数据聚合功能, 允许用户执行汇总和统计操作, 生成各种报告和图表, 用于洞察数据趋势
插件和扩展: Elasticsearch 是可扩展的, 可以通过插件来扩展其功能, 满足不同的需求。Elastic 提供了大量的官方插件, 同时社区也提供了许多第三方插件
安全性和访问控制: Elasticsearch 支持用户认证和授权, 可以配置不同用户和角色的访问权限, 以保护敏感数据
弹性和可恢复性: Elasticsearch 具有弹性和自动恢复功能, 能够处理硬件故障、数据丢失和节点添加/删除等情况
社区和生态系统: Elasticsearch 拥有庞大的社区和生态系统, 提供了大量的文档、教程和支持资源
# 安装及使用
说明在 docker 下安装 elasticsearch, 版本以 8.8.2 为例子, 的使用示例
docker pull 'elasticsearch:8.8.2': 从 dockerHub, pull elasticsearch 镜像docker run -d -p 9200:9200 -p 9300:9300 --name elasticsearch-8.8.2 elasticsearch:8.8.2-d: 这是 docker run 命令的一个选项, 表示以后台(守护进程)模式运行容器。容器将在后台运行, 而不会占用你的终端-p 9200:9200 -p 9300:9300: 这是端口映射的选项。它将容器内部的端口 9200 映射到主机上的端口 9200, 以便你可以通过主机上的端口访问 Elasticsearch 的 HTTP API。同样, 端口 9300 也进行了类似的映射, 用于 Elasticsearch 集群内部节点之间的通信
docker exec -it <container_id> /bin/bash: 进入容器. (你可能需要以 root 身份进入 container shell)-u root: 以 root 身份份运行
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.8.2/elasticsearch-analysis-ik-8.8.2.zip: 使用 elasticsearch-plugin 安装 ik 分词器修改 es 配置文件:vi ./config/elasticsearch.yml`. todoexit:docker stop elasticsearch-8.8.2: 停止容器docker start elasticsearch-8.8.2: 运行容器