注意:本教程提供的示例代码仅适用于腾讯云Elasticsearch 7.x版本,不确定是否适用于其他版本,其他版本的示例代码请参见官方文档:
在kibana 控制台,通过Dev Tools进行操作。以下示例创建了一个名为product_info的索引,指定分片数 和副本数量,索引映射。
注意:官方Elasticsearch7.0.0及之后版本移除映射中的type类型定义,之前版本会继续支持,详情请参见官方文档:
如果在Elasticsearch7.0.0及之后版本使用了type,会出现"type": "mapper_parsing_exception"的错误提示。
创建成功后,返回如下结果:
返回如下结果:
可以查询refresh间隔时间、translog刷盘时间间隔、分片、副本数量等。
返回如下结果:
Elasticsearch还提供了使用_bulk API批量执行任何操作的功能。此功能非常重要,因为它提供了一种非常高效的机制,尽可能快地完成多项操作,尽可能少的网络往返。_bulk API的官方地址为:
在Kibana控制台中,执行以下命令创建文档并插入数据,使用批量插入数据的形式:
如果返回显示"errors" : false,说明数据插入成功,具体如下:
在Kibana控制台中,执行以下命令搜索描述内容包含每天收益到账消息推送的所有产品。
搜索成功后,返回结果如下:
在Kibana控制台中,执行以下命令搜索年化率在3.0000%到3.1300%之间的产品。
执行成功后,返回结果如下:
Elasticsearch实际上并没有在原文档进行就地更新,而是会删除旧文档,索引一个新文档来立刻替换它。Elasticsearch提供了在查询条件下更新多个文档的能力(如SQL UPDATE-WHERe语句),具体可以参考官方文档说明:
以下示例通过指定id更新文档:将describe字段更改为“280天定期理财,最低20000起投,收益稳定,可以自助选择消息推送”并同时添加test字段:
更新成功后,返回结果如下:
在Kibana控制台中,通过指定文档ID,执行以下命令删除文档:
删除成功后,返回结果如下:
在Kibana控制台中,执行以下命令删除product_info索引:
删除成功后,返回结果如下:
1) 默认模板说明
索引模板是预先定义好的在创建新索引时自动应用的模板,主要包括索引设置、映射和模板优先级等配置。腾讯云 ES 在集群创建时提供了一个默认的索引模板,您可以在 Kibana 界面的【Dev Tools】中通过命令GET _template/default@template查看这个模板。下面是默认模板及其中配置的一些说明,可以根据需求适当调整这些配置。
2) 模板调整
您可以在 Kibana 界面的【Dev Tools】中通过命令PUT _template/my_template自定义自己的索引模板,并通过设置模板优先级order的数值大于默认模板优先级来覆盖默认的索引模板中的配置。
注意:索引模板仅在索引创建时应用,因此模板调整不会对已有的索引产生影响。
a) 调整主分片个数
在 Elasticsearch 5.6.4版本和6.4.3版本中,默认的索引主分片个数为5个。对于数据规模较小、索引个数较多的场景,建议调小主分片个数,以减轻索引元数据对堆内存的压力。您可以参考下面模板调整主分片个数:
b) 调整字段类型
在默认模板中,我们将 string 类型字段动态映射为 keyword 类型,以防止对所有文本类型数据都进行全文索引。您可以根据业务需求,修改指定 string 类型字段为 text,使其可以全文索引:
c) 其他业务场景