怎样合理创建es索引_ES(ElasticSearch) 索引创建

本文详细介绍了如何在Elasticsearch中合理创建索引,强调了类似数据应归一索引,避免混合不同类型数据。同时,讨论了索引命名规范,如应使用小写且避免特殊字符。此外,文章涵盖了创建索引、设置分片与副本、创建映射(mapping)以及插入和查询数据的步骤,强调了理解并谨慎调整分片和副本数量的重要性。
摘要由CSDN通过智能技术生成

索引创建原则

类似的数据放在一个索引,非类似的数据放不同索引:product index(包含了所有的商品),sales index(包含了所有的商品销售数据),inventory index(包含了所有库存相关的数据)。如果你把比如product,sales,human resource(employee),全都放在一个大的index里面,比如说company index,不合适的。

index中包含了很多类似的document:类似是什么意思,其实指的就是说,这些document的fields很大一部分是相同的,你说你放了3个document,每个document的fields都完全不一样,这就不是类似了,就不太适合放到一个index里面去了。

索引名称必须是小写的,不能用下划线开头,不能包含逗号:product,website,blog

1、创建新的索引(index)

PUT indexTest001

结果:

2、索引设置

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

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

结果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值