ElasticSearch备考 -- Multi field

一、题目

Create the index `hamlet_2` with one primary shard and no replicas

Copy the mapping of `hamlet_1` into `hamlet_2`, but also define a multi-field for `speaker`. The name of such multi-field is `tokens` and its data type is the (default) analysed string

Reindex `hamlet_1` to `hamlet_2`

`hamlet_1` index mapping

{

"line_number": "text",

"speaker": "text",

"text_entry": "text"

}

Verify that full-text queries on "speaker.tokens" are enabled on `hamlet_2` by running the following command:

GET hamlet_2/_search

{

"query": {

"match": { "speaker.tokens": "hamlet" }

}

}

二、思考

我们来分析一下题目的要求,其中说要求拷贝`hamlet_1`mapping定义,并且要求顶一个的多字段类型speaker,其中一个字段名字叫tokenle,类型为文本类型。

多字段其实主要考察mapping的自定义,我们可以理解为一个字段有多种类型,是通过fields关键字段实现。

三、解题

Step 1、创建 `hamlet_1` mapping

bash 复制代码
PUT /hamlet_1
{
  "mappings": {
    "properties": {
      "line_number": {
        "type": "text"
      },
      "speaker": {
        "type": "text"
      },
      "text_entry": {
        "type": "text"
      }
    }
  }

Step 2、拷贝索引hamlet_1结构创建hamlet_2索引

索引中settings 配置

  • number_of_shards:索引分片数量
  • number_of_replicas:索引中备份数量

多字段要使用fileds 关键字,定义字段和mapping中最外层字段定义一样

bash 复制代码
PUT /hamlet_2
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "properties": {
      "line_number": {
        "type": "text"
      },
      "speaker": {
        "type": "text",
        "fields": {
          "token": {
            "type": "text"
          }
        }
      },
      "text_entry": {
        "type": "text"
      }
    }
  }
}

Step 3、reindex 数据

bash 复制代码
POST _reindex
{
  "source": {
    "index": "hamlet_1"
  },
  "dest": {
    "index": "hamlet_2"
  }
}

Step 4、执行查询

bash 复制代码
GET hamlet_2/_search
{
  "query": {
    "match": {
      "speaker.tokens": "hamlet"
    }
  }
}

四、总结

mapping中多字段定义要是使用关键字 fileds,创建字段和最外层字段格式一样

参考资料

送一波福利:

福利一

有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!

有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!

有需要内推JD的同学,可以私信或留言,我帮您内推,流程快!!!

福利二

福利三

相关推荐
ljh5746491192 分钟前
大数据geo是什么意思
大数据·人工智能
阿蒙Amon2 分钟前
JavaScript学习笔记:14.类型数组
javascript·笔记·学习
闲人编程5 分钟前
环境配置管理与敏感信息保护
大数据·生命周期·环境配置·加密算法·codecapsule·敏感信息保护
珠海西格电力10 分钟前
零碳园区应急能源基础架构规划:备用电源与清洁能源联动配置
大数据·运维·人工智能·物联网·能源
Elastic 中国社区官方博客15 分钟前
开始使用 Elastic Agent Builder 和 Strands Agents SDK
大数据·人工智能·elasticsearch·搜索引擎·ai·全文检索
老陈头聊SEO18 分钟前
生成引擎优化(GEO)如何提升内容创作效率与增强用户体验
其他·搜索引擎·seo优化
说私域19 分钟前
不同类型企业构建私域流量的必要性及定制开发AI智能名片商城小程序的应用
大数据·人工智能·小程序
专业开发者20 分钟前
蓝牙 ® 技术正逐步在未来的智慧城市中站稳脚跟。
大数据·人工智能·智慧城市
代码游侠27 分钟前
学习笔记——写时复制(Copy-on-Write)
linux·网络·笔记·学习·写时复制
阿蒙Amon30 分钟前
JavaScript学习笔记:3.控制流与错误处理
javascript·笔记·学习