Skip to content

ElasticSearch

一、是什么(概念)

Elasticsearch 是一个 分布式RESTful 风格 的搜索和数据分析引擎,能够解决不断涌现出的各种用例。

github: https://github.com/elastic/elasticsearch

使用 Java 语言编写的。

核心概念

索引 -> 数据库

如果部署架构为集群,一个 index 会在多个 Node 上备份,称之为 Shard(分片)

类型 -> 表结构

Keyword 类型不分词,直接索引 Text 类型先分词,再建索引

文档 -> 记录

二、为什么(历史由来)

为了解决什么问题

解决后的好处、优点 优点: 1. 分布式 2. RESTFul

三、怎么做(使用)

Get-Started

  1. 安装 JDK 8 或 Java 1.8.0+
  2. 下载软件包(二进制文件 + 配置)
  3. 修改 logstash.conf 配置
  4. bin/logstash -f logstash.conf 运行
  5. 访问 localhost:9200

建立索引

curl -X PUT 'http://ip:port/{index}'

docker run -d --name elasticsearch --restart=always \ -p 9200:9200 -p 9300:9300 \ -v /root/docker/elasticsearch/config:/usr/share/elasticsearch/config \ -v /root/docker/elasticsearch/data:/usr/share/elasticsearch/data \ elasticsearch:5.6.9

常用搜索

status:active # 准确搜索

Query DSL

四、做更好(应用场景)

master 选取规则

建立索引和类型要经 master,数据写入直接 route 到节点,压力分散

query string 语法

参考