Elasticsearch(一) 入门

目录

1、Elasticsearch 是什么?

2、API

节点客户端(node client):

传输客户端(Transport client):

基于HTTP协议,以JSON为数据交互格式的RESTful API

3、面向文档

4、索引

5、搜索

6、聚合


1、Elasticsearch 是什么?

Elasticsearch 是一个基于 Apache Lucene(TM)的开源搜索引擎。由于 Lucene 非常复杂,你需要深入了解检索的相关知识来理解它是如何工作的,Elasticsearch 的目的是通过简单的 RESTful API 来隐藏 Lucene 的复杂性,从而让全文搜索变得简单。

Elasticsearch 不仅仅是 Lucene 和 全文搜索,我们还可以这样去描述它:

  • 分布式的实时文件存储,每个字段都被索引并可被搜索
  • 分布式的实时分析搜索引擎
  • 可以扩展到上百台服务器,处理 PB 级结构化或非结构化数据

2、API

Elasticsearch 为 Java 用户提供了两种内置客户端:

节点客户端(node client):

节点客户端以无数据节点(none data node)身份加入集群,换言之,它自己不存储任何数据,但是它知道数据在集群中的具体位置,并且能够直接转发请求到对应的节点上。

传输客户端(Transport client):

这个更轻量的传输客户端能够发送请求到远程集群。它自己不加入集群,只是简单转发请求给集群中的节点。

两个 Java 客户端都通过 9300 端口与集群交互,使用 Elasticsearch 传输协议。集群中的节点之间也可以通过9300端口进行通信。如果此端口未开放,你的节点将不能组成集群。

基于HTTP协议,以JSON为数据交互格式的RESTful API

其他所有程序语言可以使用 RESTful API,通过9200端口与 Elasticsearch 进行通信。

向 Elasticsearch 发出的请求的组成部分与其它普通的 HTTP 请求是一样的:

curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
  • VERB HTTP方法:GET , POST, PUT, HEAD, DELETE
  • PROTOCOL http 或者 https 协议
  • HOST Elasticsearch 集群中的任何一个节点的主机名,如果是本地的节点那就是 localhost
  • PORT Elasticsearch HTTP 服务所在的端口,默认为 9200
  • PATH API路径
  • QUERY_STRING 一些可选的查询请求参数,例如 ?pretty 参数将使请求返回更美观
  • BODY 一个 JSON 格式的请求主体

3、面向文档

应用中的对象很少只是简单的键值列表,更多时候它拥有复杂的数据结构,比如包含日期、地理位置、另一个对象或者数组。

将这些数据保存到由行和列组成的关系数据库中,就好像是把一个丰富的、信息表现力强的对象拆散了放入一个非常大的表格中:你不得不拆分对象以适应表模式,然后又不得不在查询的时候重建它们。

Elasticsearch 是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。你可以对文档进行索引、搜索、排序、过滤。这种理解数据的方式与以往完全不同,这也是 Elasticsearch 能够执行复杂的 全文搜索 的原因之一。

Elasticsearch 使用 JavaScript对象符号(JavaScript Object Notation),也就是 JSON,作为文档序列化格式。JSON 现在已被大多语言所支持,而且已经成为 NoSQL 领域的标准格式。

4、索引

在 Elasticsearch 中存储数据的行为就叫做 索引 (indexing)。

在 Elasticsearch 中,文档归属于一种类型(type),而这些类型存在于索引(index)中,一下是和传统关系型数据库的对比:

Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices   -> Types  -> Documents -> Fields

Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包含多个文档(documents)(行),然后每个文档包含多个字段(Fields)(列)。

5、搜索

DSL搜索、全文搜索、短语搜索、高亮我们的搜索

6、聚合

对数据的分析统计功能。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值