美文网首页elasticsearch玩转大数据程序员
[翻译]ElasticSearch官方文档-关于索引

[翻译]ElasticSearch官方文档-关于索引

作者: 飞来来 | 来源:发表于2017-10-15 14:12 被阅读51次

    本文翻译自:https://www.elastic.co/guide/en/elasticsearch/reference/current/_list_all_indices.html

    本文是Elasticsearch的入门文档,将会介绍ElasticSearch中索引(index)的相关情况。

    列出所有的索引

    这个命令可以查看所有的索引:

    GET /_cat/indices?v
    

    返回结果是:

    health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
    

    这只是意味着在搜索的集群中没有任何索引。

    创建索引

    现在我们创建一个名为“customer”的索引,然后再次列出所有索引:

    PUT /customer?pretty
    GET /_cat/indices?v
    

    第一个命令使用PUT动词创建名为“customer”的索引。我们简单地追加(pretty)到调用的结尾,告诉它打印JSON响应(如果有返回值话)。

    返回结果是:

    health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
    yellow open   customer 95SQ4TSUT7mWBT7VNHH67A   5   1          0            0       260b           260b
    

    第二个命令的结果告诉我们,我们现在有一个名为customer的索引,它有5个主分片和1个副本(默认值),它包含0个文档。

    你可能还会注意到,客户索引的黄色健康状况已被标记。从以前的讨论中回想一下,黄色意味着某些副本尚未分配。这个索引发生的原因是因为Elasticsearch默认为此索引创建了一个副本。由于我们目前只有一个节点正在运行,所以一个副本不能被分配(为了高可用性,单节点情况中副本和主分片都在一台机器上),直到另一个节点加入集群的时间点为止。一旦该副本被分配到第二个节点上,该索引的运行状况将变为绿色。

    索引和查询文档

    我们现在把一些东西放在我们自己的索引中。在此之前要记住,为了索引一个文档,我们必须告诉Elasticsearch应该去哪个类型的索引。

    我们将一个简单的客户文档索引到客户索引的“external”类型中,ID为1,如下所示:

    PUT /customer/external/1?pretty
    {
      "name": "John Doe"
    }
    

    返回:

    {
      "_index" : "customer",
      "_type" : "external",
      "_id" : "1",
      "_version" : 1,
      "result" : "created",
      "_shards" : {
        "total" : 2,
        "successful" : 1,
        "failed" : 0
      },
      "created" : true
    }
    

    从上面可以看出,在客户索引和外部类型中成功创建了一个新的客户文档。该文档的内部ID为1,我们在索引时指定。

    重要的是要注意,在你可以将文档编入索引之前,Elasticsearch不要求你首先显式创建索引。在前面的例子中,Elasticsearch会自动创建客户索引(如果它不存在)。

    我们现在检索我们刚刚编入索引的文档:

    GET /customer/external/1?pretty
    

    返回为:

    {
      "_index" : "customer",
      "_type" : "external",
      "_id" : "1",
      "_version" : 1,
      "found" : true,
      "_source" : { "name": "John Doe" }
    }
    

    除了一个"found"字段之外,没有什么是普通的。我们发现一个文档返回,他的ID为1,另外一个字段"_source",它返回从上一步索引的完整的JSON文档。

    删除索引

    现在我们来删除我们刚刚创建的索引,然后再次列出所有索引:

    DELETE /customer?pretty
    GET /_cat/indices?v
    

    返回值为:

    health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
    

    这意味着索引被成功删除,现在我们回到我们集群中没有任何东西的地方。在继续之前,让我们再来看一下我们迄今为止学到的一些API命令:

    PUT /customer
    PUT /customer/external/1
    {
      "name": "John Doe"
    }
    GET /customer/external/1
    DELETE /customer
    

    如果我们仔细研究上面的命令,我们实际上可以看到我们如何访问Elasticsearch中的数据。该模式可概括如下:

    <REST Verb> /<Index>/<Type>/<ID>
    

    这个REST访问模式在所有的API命令中是如此的普及,如果你可以简单的记住它,你将会很好地掌握Elasticsearch的开始。

    相关文章

      网友评论

        本文标题: [翻译]ElasticSearch官方文档-关于索引

        本文链接:https://www.haomeiwen.com/subject/cuwnextx.html