elasticsearch知识点记录

荒凉一梦 提交于 2019-12-10 09:12:39

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、映射

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!