当前位置:   article > 正文

Es之mapping_es 查看mapping

es 查看mapping

1)、字段类型 

 

 

 2)、映射

Mapping(映射)

Mapping 是用来定义一个文档(document),以及它所包含的属性(field)是如何存储和 索引的。比如,使用 mapping 来定义:

 哪些字符串属性应该被看做全文本属性(full text fields)。

 哪些属性包含数字,日期或者地理位置。

 文档中的所有属性是否都能被索引(_all 配置)。

 日期的格式。

 自定义映射规则来执行动态添加属性。

使用动态映射显式映射来定义数据。每种方法 根据您在数据之旅中所处的阶段提供不同的优势。为 例如,显式映射不想使用默认值的字段,或者 获得对创建哪些字段的更大控制。然后您可以允许Elasticsearch 动态添加其他字段。

 查看 mapping 信息

GET bank/_mapping

自动猜测的映射类型 

3)、新版本改变

Es7 及以上移除了 type 的概念。

 关系型数据库中两个数据表示是独立的,即使他们里面有相同名称的列也不影响使用, 但 ES 中不是这样的。elasticsearch 是基于 Lucene 开发的搜索引擎,而 ES 中不同 type下名称相同的 filed 最终在 Lucene 中的处理方式是一样的。

 两个不同 type 下的两个 user_name,在 ES 同一个索引下其实被认为是同一个 filed, 你必须在两个不同的 type 中定义相同的 filed 映射。否则,不同 type 中的相同字段 名称就会在处理中出现冲突的情况,导致 Lucene 处理效率下降。

 去掉 type 就是为了提高 ES 处理数据的效率。

Elasticsearch 7.x

 URL 中的 type 参数为可选。比如,索引一个文档不再要求提供文档类型。

Elasticsearch 8.x

 不再支持 URL 中的 type 参数。 解决:

1)、将索引从多类型迁移到单类型,每种类型文档一个独立索引

2)、将已存在的索引下的类型数据,全部迁移到指定位置即可。详见数据迁移

 1、创建映射

  1. PUT /my_index
  2. {
  3. "mappings": {
  4. "properties": {
  5. "age":{"type": "text"},
  6. "email":{"type": "keyword"},
  7. "name":{"type": "text"}
  8. }
  9. }
  10. }
  1. {
  2. "acknowledged" : true,
  3. "shards_acknowledged" : true,
  4. "index" : "my_index"
  5. }

2、添加新的字段映射 

  1. PUT /my-index/_mapping
  2. { "properties":
  3. { "employee-id":
  4. { "type": "keyword", "index": false
  5. }
  6. }
  7. }
  1. {
  2. "acknowledged" : true
  3. }

 

3、更新映射 

 对于已经存在的映射字段,我们不能更新。更新必须创建新的索引进行数据迁移

所以以下操作会报错!

  1. PUT /my_index
  2. {
  3. "mappings": {
  4. "properties": {
  5. "age":{"type": "text"},
  6. "email":{"type": "keyword"},
  7. "name":{"type": "text"},
  8. "employee_id":{"type": "long"}
  9. }
  10. }
  11. }
  1. {
  2. "error": {
  3. "root_cause": [
  4. {
  5. "type": "resource_already_exists_exception",
  6. "reason": "index [my_index/mLCXjYGEQyWwh5uexTlQ4w] already exists",
  7. "index_uuid": "mLCXjYGEQyWwh5uexTlQ4w",
  8. "index": "my_index"
  9. }
  10. ],
  11. "type": "resource_already_exists_exception",
  12. "reason": "index [my_index/mLCXjYGEQyWwh5uexTlQ4w] already exists",
  13. "index_uuid": "mLCXjYGEQyWwh5uexTlQ4w",
  14. "index": "my_index"
  15. },
  16. "status": 400
  17. }

 4、数据迁移

先创建出 new_twitter 的正确映射。然后使用如下方式进行数据迁移

 

 

  1. POST _reindex
  2. {
  3. "source": {
  4. "index": "bank",
  5. "type": "account"
  6. },
  7. "dest": {
  8. "index": "newbank"
  9. }
  10. }
  1. {
  2. "took" : 2420,
  3. "timed_out" : false,
  4. "total" : 1000,
  5. "updated" : 0,
  6. "created" : 1000,
  7. "deleted" : 0,
  8. "batches" : 1,
  9. "version_conflicts" : 0,
  10. "noops" : 0,
  11. "retries" : {
  12. "bulk" : 0,
  13. "search" : 0
  14. },
  15. "throttled_millis" : 0,
  16. "requests_per_second" : -1.0,
  17. "throttled_until_millis" : 0,
  18. "failures" : [ ]
  19. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/503771
推荐阅读
相关标签
  

闽ICP备14008679号