ElasticSearch 7.3 实战:Mapping映射入门

在Elasticsearch 7.3中,mapping映射扮演着至关重要的角色,它是对索引内部文档结构的定义。映射决定了索引中每种字段的数据类型、如何进行分析(analysis)、是否能被搜索、排序和聚合等属性。以下是映射入门的关键点:

  1. 创建映射

    • 在Elasticsearch中,当向一个新的索引中添加第一个文档时,Elasticsearch会自动检测文档的字段类型,并为该索引创建一个默认的映射(dynamic mapping)。然而,为了更好地控制索引中的字段行为,通常推荐在创建索引之前或者创建索引后立即定义映射。

    示例:

    PUT /my_index
    {
      "mappings": {
        "properties": {
          "title": { "type": "text" },
          "content": { "type": "text" },
          "date": { "type": "date" },
          "views": { "type": "integer" }
        }
      }
    }
    
  2. 字段类型

    • 映射中的每个字段都有一个特定的数据类型,例如textkeyworddateintegerfloatboolean等。不同类型影响了字段如何被索引、搜索和存储。
  3. 分析器(Analyzer)

    • 对于text类型的字段,可以配置分析器决定如何对文本进行分词(tokenization)和过滤(filtering)。例如,可以使用标准分析器(standard analyzer)对英文进行分词,或者自定义分析器处理特殊需求。

    示例:

    "title": {
      "type": "text",
      "analyzer": "standard"
    }
    
  4. 动态映射(Dynamic Mapping)

    • 如果没有预先定义映射,Elasticsearch可以根据插入的文档自动推断字段类型。但也可以限制动态映射,比如禁用某些字段的动态创建,或为动态字段指定默认映射规则。
  5. 多字段(Multi-fields)

    • 同一字段可以有多个映射,以便在不同场景下有不同的处理方式。例如,一个title字段既可以作为全文搜索的text类型,也可以作为一个不分词的keyword类型供聚合或精确匹配使用。

    示例:

    "title": {
      "type": "text",
      "fields": {
        "keyword": { "type": "keyword" }
      }
    }
    
  6. 其他映射属性

    • 映射还可以定义诸如null_value(为null值设置一个替代值)、ignore_above(超过一定长度的字段不被索引)、copy_to(将字段内容复制到另一个字段)等属性。

总的来说,理解并合理配置映射对于构建高性能、高效率的Elasticsearch索引至关重要。它能够确保你的数据在搜索、排序和聚合过程中得到正确处理,同时优化存储空间和查询性能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值