Elasticsearch(ES)创建索引

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch(ES)创建索引相关的知识,希望对你有一定的参考价值。

参考技术A 一、开始创建索引

您可以通过 Elasticsearch 的 RESTFul API 来创建索引:

PUT http://127.0.0.1:9200/commodity

注意:默认情况下,创建的索引分片数量是 5 个,副本数量是 1 个。

您可以通过如下参数来指定分片数、副本数量:

"settings":  "number_of_shards": 3, "number_of_replicas": 2





1.1 实战演示

通过 CURL 命令来上手操作一下,我们尝试创建一个 商品 索引, 看下效果:

curl -X PUT "localhost:9200/commodity?pretty"

索引创建成功会返回以下出参:

  "acknowledged" : true,  "shards_acknowledged" : true,  "index" : "commodity"

如下图所示:

二、创建带有类型、映射的索引(Index)

其实,我们可以在创建索引的时候,同时将索引的类型、以及映射一并创建好:

curl -X PUT "localhost:9200/commodity?pretty"

入参:

"settings":  "number_of_shards": 3, "number_of_replicas": 2

, "mapping":  "_doc":  "properties":  "commodity_id":  "type": "long"

, "commodity_name":  "type": "text"

, "picture_url":  "type": "keyword"

, "price":  "type": "double"











我们创建了一个分片数为 3,副本数为 2 的索引,同时,定义了一个_doc的类型,里面包含了 4 个字段,类型各不相同。

接下来,我们用 Postman 工具来一次性创建带有类型、映射的索引(Index):

这里应为笔者通过 CURL 创建索引,由于带入参,出现了格式错误的问题,改用了 Postman 工具,效果相同。

三、修改索引的副本数

我们可以通过如下 API 来修改索引的副本数:

PUT http://127.0.0.1:9200/commodity/_settings

入参:

"number_of_replicas": 3

我们将commodity索引副本数更新为了 3:

ES(ElasticSearch) 索引创建

环境:ES 6.2.2

os:Centos  7

kibana:6.2.2

1、创建新的索引(index)

    PUT indexTest001

    结果:

技术图片

2、索引设置

      ES 默认提供了好多索引配置选项,参考https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index-modules.html,这些配置选项都有经过优化的默认配置值,除非你非常清楚这些配置的作用以及知道为什么去修改它,不然使用其默认值即可。

    a、分片设置

        number_of_shards
        每个索引的主分片数,默认值是 5 。这个配置在索引创建后不能修改。
        number_of_replicas

        每个主分片的副本数,默认值是 1 。对于活动的索引库,这个配置可以随时修改。

        例如,我们可以创建只有 一个主分片,没有副本的小索引:
        PUT /my_test_index_004
        
            "settings":
            "number_of_shards" :   1,
            "number_of_replicas" : 0
           

        

        更改副本数量:

        PUT /my_test_index_004/_settings
        
            "number_of_replicas": 2

        

     每次更改分片之后可以使用:GET my_test_index_004/_search_shards 来查询索引信息.

 

3、创建mapping

    a、首先查看刚刚创建的索引的mapping是什么样子的

        GET indextest001/_mapping

        结果:

        技术图片

         可见新建的索引中,mapping是一个空集,所以我们就要创建这个index的mapping

         命令:

        POST indextest001/product/_mapping?pretty 

    "product":"properties":"title":"type":"text","store":"true","description":"type":"text","index":"false","price":"type":"double","onSale":"type":"boolean","type":"type":"integer","createDate":"type":"date"

执行完毕后再次执行上面所述查询结果如下:

技术图片

4、插入数据

POST indextest001/product

  "title": "test title 001",
  "description": "this is a random desc ",
  "price": 22.6,
  "onSale": "true",
  "type": 2,
  "createDate": "2018-01-12"

 然后查询一下所有数据,默认为match_all

 GET indextest001/product/

根据id查询

 GET indextest001/product/UNBdGWIBI2NcsxokJ0lQ

 结果如下:

 技术图片

以上是关于Elasticsearch(ES)创建索引的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch es 的 _ignored 字段

Elasticsearch(ES)创建索引

ES(ElasticSearch) 索引创建

ElasticSearch_01_ES的引入

ElasticSearch_01_ES的引入

ElasticSearch_01_ES的引入