1、基于http协议,以json为数据交互格式的RESTful API
其他所有程序语言都可以使用RESTful API,通过9200端口的与Elasticsearch进行通信,你可以使用你喜欢的WEB客户端, 事实上,如你所见,你甚至可以通过 curl 命令与Elasticsearch通信
2、
VERB HTTP方法: GET , POST , PUT , HEAD , DELETE
PROTOCOL http或者https协议(只有在Elasticsearch前面有https代理的时候可用)
HOST Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫localhost
PORT Elasticsearch HTTP服务所在的端口,默认为9200
QUERY_STRING 一些可选的查询请求参数,例如 ?pretty 参数将使请求返回更加美观易读的JSON数据
BODY 一个JSON格式的请求主体(如果请求需要的话)
3、得到集群中的文档数量
curl -XGET -H "Content-Type:application/json" http://localhost:9200/_count?pretty -d '{"query":{"match_all":{}}}'
4、DSL语言:DSL(Domain Specific Language特定领域语言)
5、Elasticsearch致力于隐藏分布式系统的复杂性。以下这些操作都是在底层自动完成的:
将你的文档分区到不同的容器或者分片(shards)中,它们可以存在于一个或多个节点中。
将分片均匀的分配到各个节点,对索引和搜索做负载均衡。
冗余每一个分片,防止硬件故障造成的数据丢失。
将集群中任意一个节点上的请求路由到相应数据所在的节点。
无论是增加节点,还是移除节点,分片都可以做到无缝的扩展和迁移。
6、空集群
一个节点(node)就是一个Elasticsearch实例,而一个集群(cluster)由一个或多个节点组成,它们具有相同的 cluster.name , 它们协同工作,分享数据和负载。当加入新的节点或者删除一个节点时,集群就会感知到并平衡数据。
集群中一个节点会被选举为主节点(master),它将临时管理集群级别的一些变更,例如新建或删除索引、增加或移除节点等。 主节点不参与文档级别的变更或搜索,这意味着在流量增长的时候,该主节点不会成为集群的瓶颈。任何节点都可以成为主 节点。我们例子中的集群只有一个节点,所以它会充当主节点的角色。
7、集群状态三种:green,yellow,red
颜色 意义
green 所有主要分片和复制分片都可用
yellow 所有主要分片可用,但不是所有复制分片都可用
red 不是所有的主要分片都可用
8、索引:索引只是一个用来指向一个 或多个分片(shards)的“逻辑命名空间(logical namespace)”.
9、文档:通常,我们可以认为对象(object)和文档(document)是等价相通的。不过,他们还是有所差别:对象(Object)是一个JSON结 构体——类似于哈希、hashmap、字典或者关联数组;对象(Object)中还可能包含其他对象(Object)。 在Elasticsearch中,文 档(document)这个术语有着特殊含义。它特指最顶层结构或者根对象(root object)序列化成的JSON数据(以唯一ID标识并 存储于Elasticsearch中)。
10、文档元数据:一个文档不只有数据。它还包含了元数据(metadata)——关于文档的信息。三个必须的元数据节点是:
节点 说明
_index 文档存储的地方 -------------类似于关系数据库里的数据库
_type 文档代表的对象的类 -------------类似于数据库中的表
_id 文档的唯一标识
11、id:id仅仅是一个字符串,它与 _index 和 _type 组合时,就可以在ELasticsearch中唯一标识一个文档。当创建一个文档,你可以 自定义 _id ,也可以让Elasticsearch帮你自动生成。
12、修改文档必须重建索引,elasticsearch标记旧文档,添加一个新的,_version增加,删除文档:delete /index/type/id
13、_mget允许一次性检索多个文档
14、bulk请求: bulk API允许我们使用单一请求来实现多个文档 的 create 、 index 、 update 或 delete 。这对索引类似于日志活动这样的数据流非常有用,它们可以以成百上千的数据为一 个批次按序进行索引。
行为 解释
create 当文档不存在时创建之。详见《创建文档》
index 创建新文档或替换已有文档。见《索引文档》和《更新文档》
update 局部更新文档。见《局部更新》
delete 删除一个文档。见《删除文档》
{ "delete": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }} { "title": "My first blog post" }
15、bulk请求是这样
POST /_bulk
{ "delete": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "title": "My first blog post" }
{ "index": { "_index": "website", "_type": "blog" }}
{ "title": "My second blog post" }
{ "update": { "_index": "website", "_type": "blog", "_id": "123", "_retry_on_conflict" : 3} }
{ "doc" : {"title" : "My updated blog post"} }
16、分布式文档的存储
repliaction:复制默认的值是 sync 。这将导致主分片得到复制分片的成功响应后才返回
consistency:默认主分片在尝试写入时需要规定数量(quorum)或过半的分片(可以是主节点或复制节点)可用。这是防止数据被写入到错 的网络分区。规定的数量计算公式如下:
17、映射
来源:CSDN
作者:weixin_39534345
链接:https://blog.csdn.net/weixin_39534345/article/details/103457403