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)创建索引的主要内容,如果未能解决你的问题,请参考以下文章