这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战
大数据领域经常听到的ELK:
E: Elasticsearch 是提供实时搜索和分析的分布式搜索和分析引擎;
L: Logstash收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中;
K: Kibana以交互方式探索、可视化和共享对数据的洞察,并管理和监控设备。
Elasticsearch同时提供了非常便利分布式部署方式,可以非常快速的进行增加节点。
数据输入
Elasticsearch 是一个分布式文档存储。Elasticsearch 不是将信息存储为列状数据的行,而是存储已序列化为 JSON 文档的复杂数据结构。当集群中有多个 Elasticsearch 节点时,存储的文档分布在整个集群中,并且可以从任何节点立即访问。
存储文档后,它会被编入索引,并可在 1 秒内近乎实时地完全搜索。Elasticsearch 使用一种称为倒排索引的数据结构,它支持非常快速的全文搜索。倒排索引列出出现在任何文档中的每个唯一单词,并标识每个单词出现在的所有文档。
并且Elasticsearch支持动态增加字段,并且会自动使用最合适的数据类型。Elasticsearch 会自动检测并将新字段添加到索引中。
另外还支持自定义类型和自定义分词器,以适合各种使用场景。 这种友好且快速的搜索引擎,特别适合应用于以下场景:
- WEB网站的搜索框;
- 订单查询;
- 文本搜索
数据输出
Elasticsearch真正的强大之处在于能够轻松访问构建在 Apache Lucene 搜索引擎库上的全套搜索功能。
Elasticsearch 提供了一个简单、一致的 REST API 来管理您的集群以及索引和搜索您的数据。
然后Elasticsearch提供以下语言的客户端,非常容易结合已有项目中去使用其强大的搜索功能:
Java、JavaScript、Go、.NET、PHP、Perl、Python 或 Ruby
Elasticsearch REST API 支持结构化查询、全文查询和将两者结合的复杂查询。
结构化查询类似于您可以在 SQL 中构造的查询类型。例如,您可以搜索存储员工信息索引中的gender,employee和age字段并按hire_date字段对匹配项进行排序。全文查询查找与查询字符串匹配的所有文档,并按相关性排序返回它们——它们与您的搜索词的匹配程度。
query查询关注的是“How well does this document match this query clause?”;
filter查询关注的是:“Does this document match this query clause?”。