Elasticsearch:索引mapping

这里写目录标题

  • 一、介绍
  • 二、动态mapping
  • 三、mapping属性
    • (1)analyzer(分析器)
    • (2) coerce(强制类型转换)
    • (3)copy_to(合并参数)

一、介绍

二、动态mapping

三、mapping属性

(1)analyzer(分析器)

该analyzer参数指定在索引或搜索字段时用于 文本分析的分析器。text除非使用映射参数覆盖search_analyzer,否则此分析器将用于索引和搜索分析。

  • search_quote_analyzer
    该search_quote_analyzer设置允许您指定短语分析器,这在处理禁用短语查询的停用词时特别有用。要禁用短语的停用词,需要一个利用三个分析器设置的字段:
    • analyzer设置索引所有词,包括停止词。
    • search_analyzer设置将删除停止词的非短语查询。
    • search_quote_analyzer设置不删除停止词的短语查询。
      具体的介绍可参考:https://blog.csdn.net/ctwy291314/article/details/81391514

说明:只有text字段支持analyzer映射参数。

(2) coerce(强制类型转换)

数据不总是干净的.根据它的生成方式,一个数字可能会在 JSON body中呈现为一个真正的 JSON 数字。例如5,但它也可能呈现为字符串,例如 “5” 。或者,应该是整型的数字被替代地呈现为浮点型.例如, 5.0 或者"5.0".
Coercion尝试着清理脏数据让字段符合相应的数据类型.例如 :

  • 字符串被强制转换为数字。
  • 浮点型被截断为整型。

例如:

curl -XPUT 'localhost:9200/my_index?pretty' -H 'Content-Type: application/json' -d'
{"mappings": {"my_type": {"properties": {"number_one": {"type": "integer"},"number_two": {"type": "integer","coerce": false}}}}
}
'
curl -XPUT 'localhost:9200/my_index/my_type/1?pretty' -H 'Content-Type: application/json' -d'
{"number_one": "10"  # 1
}
'
curl -XPUT 'localhost:9200/my_index/my_type/2?pretty' -H 'Content-Type: application/json' -d'
{"number_two": "10"  # 2
}
'
  • number_one 字段会包含整型 10。
  • 由于强制功能已被禁用,因此该文件将被拒绝。

(3)copy_to(合并参数)

copy_to参数允许你创建自定义的 _all 字段.换句换来说,可以将多个字段的值复制到group field(组字段),然后可以作为单个字段进行查询.例如, first_name和 last_name可以复制到 full_name字段中,如下所示 :

curl -XPUT 'localhost:9200/my_index?pretty' -H 'Content-Type: application/json' -d'
{"mappings": {"my_type": {"properties": {"first_name": {"type": "text","copy_to": "full_name"  # 1},"last_name": {"type": "text","copy_to": "full_name"  # 2},"full_name": {"type": "text"}}}}
}
'
curl -XPUT 'localhost:9200/my_index/my_type/1?pretty' -H 'Content-Type: application/json' -d'
{"first_name": "John","last_name": "Smith"
}
'
curl -XGET 'localhost:9200/my_index/_search?pretty' -H 'Content-Type: application/json' -d'
{"query": {"match": {"full_name": {  # 3"query": "John Smith","operator": "and"}}}
}
'
  • 1 , 2 - 》first_name(名字)和 last_name(姓氏)字段复制到full_name 字段。
  • 3 -》first_name(名字)和last_name(姓氏)字段仍然可以分别查询,full_name可以通过first_name(名字)和last_name(姓氏)来查询。

查看数据:

GET /my_index/my_type/_search
{"took": 1,"timed_out": false,"_shards": {"total": 5,"successful": 5,"failed": 0},"hits": {"total": 1,"max_score": 1,"hits": [{"_index": "my_index","_type": "my_type","_id": "1","_score": 1,"_source": {"first_name": "John","last_name": "Smith"}}]}
}

一些要点:

  • 复制的是字段值,而不是 term(词条)(由分析过程产生)。
  • _source字段不会被修改来显示复制的值.。
  • 相同的值可以复制到多个字段,通过"copy_to": [ “field_1”, “field_2” ] 来操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892160.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

玩机搞机基本常识-------列举安卓机型一些不常用的adb联机命令

前面分享过很多 常用的adb命令,今天分享一些不经常使用的adb指令。以作备用 1---查看当前手机所有app包名 adb shell pm list package 2--查看当前机型所有apk包安装位置 adb shell pm list package -f 3--- 清除指定应用程序数据【例如清除浏览器应用的数据】 …

P8772 [蓝桥杯 2022 省 A] 求和

题目描述 给定 𝑛 个整数 𝑎1,𝑎2,⋯ ,𝑎𝑛 求它们两两相乘再相加的和,即 𝑆𝑎1⋅𝑎2𝑎1⋅𝑎3⋯𝑎1⋅𝑎𝑛&…

快速学习 pytest 基础知识

全篇大概 5000 字(含代码),建议阅读时间10min 简介 Pytest是一个非常成熟的测试框架,适用于但愿测试、UI测试、接口测试。 简单灵活、上手快支持参数化具有多个第三方插件可以直接使用 assert 进行断言 一、Pytest安装 pip inst…

【25考研】川大计算机复试情况,重点是啥?怎么准备?

24年进入复试的同学中,有10位同学的复试成绩为0分。具体是个人原因还是校方原因,还尚不明确。但是C哥提醒,一定要认真复习!复试完后不要跟任何人讨论有关复试的题目及细节! 一、复试内容 四川大学复试内容较多&#xf…

计算机的错误计算(二百零五)

摘要 基于一位读者的问题,提出题目:能用数值计算证明 吗?请选用不同的点(即差别大的数)与不同的精度。实验表明,大模型理解了题意。但是,其推理能力值得商榷。 例1. 就摘要中问题&#xff0…

Linux 内核中的 netif_start_queue 函数:启动网络接口发送队列的关键

在 Linux 内核的网络子系统中,netif_start_queue 函数扮演着至关重要的角色。这个函数的主要功能是启动(或启用)网络接口的发送队列,标志着网络接口已经准备好开始发送数据包。本文将深入探讨 netif_start_queue 函数的用途、工作原理以及在实际网络驱动代码中的应用。 函…

<代码随想录> 算法训练营-2025.01.06

今日专题:并查集 107. 寻找存在的路径 思路:采用并查集的结构,在把图录进去后,判断起点和终点的根是否一致 #其实bfs也可以做吧fa{} def find(u):if fa.get(u) None or fa[u]u:return uelse:fa[u]find(fa[u])return fa[u]def j…

回归预测 | MATLAB实GRU多输入单输出回归预测

回归预测 | MATLAB实GRU多输入单输出回归预测 目录 回归预测 | MATLAB实GRU多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实GRU多输入单输出回归预测。使用GRU作为RNN的一种变体来处理时间序列数据。GRU相比传统的RNN有较好的记…

LabVIEW无标题的模态VI窗口的白框怎么去除?

在LabVIEW中,如果你遇到无标题的模态(modal)VI窗口显示有一个白框,通常是由于VI界面的一些属性或者控件设置问题导致的。为了去除这个白框,可以尝试以下几种方法: 1. 检查VI窗口属性设置 确保你的VI窗口属…

unity学习12:地图相关的一些基础2, 增加layer种草种树

目录 参考学习 1 地图设置 1.1 上次制作的地图,稍微加点地形完善下. 1.2 调整下camera 1.3 摄像机camera的移动速度 1.4 地图属性,terrain settings 1.5 但是,地图看起来像沙漠一样,很单调 2 paint terrain / paint textu…

数据挖掘——数据预处理

数据挖掘——数据预处理 数据预处理数据预处理 ——主要任务数据清洗如何处理丢失的数据如何处理噪声数据如何处理不一致数据 数据集成相关分析相关系数(也成为皮尔逊相关系数)协方差 数据规约降维法:PCA主成分分析降数据——抽样法数据压缩 数据预处理 数据预处理…

Go跨平台UI开发之wails的使用(1)

UI开发为了迁就同事,入坑了Go,虽然Go写UI程序是真的坑,不过,还是决定继续用吧。 第一版只有Windows版,用了webview2Vue的方案,webview2依赖如下: github.com/jchv/go-webview2 新版改造&#x…

Python入门教程 —— 网络编程

1.网络通信概念 简单来说,网络是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。 使用网络的目的,就是为了联通多方然后进行通信,即把数据从一方传递给另外一方。 前面的学习编写的程序都是单机的,即不能和其他电脑上的程…

鸿蒙APP之从开发到发布的一点心得

引言: 做鸿蒙开发大概有1年左右时间了,从最开始的看官方文档、看B站视频,到后来成功发布两款个人APP(房贷计算极简版、时简时钟 轻喷,谢谢)。简单描述一下里边遇到的坑以及一些经历吧。 学习鸿蒙开发 个…

力扣刷题:数组OJ篇(上)

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 目录 1.消失的数字(1)题目描…

linux下多个硬盘划分到同一挂载点

Linux下多个硬盘划分到同一挂载点 需要明确的几个概念 物理卷: 物理卷是物理存储设备(如硬盘分区、整个硬盘、RAID 阵列等)在逻辑卷管理(LVM - Logical Volume Manager)系统中的抽象表示。它是构建逻辑卷组的基本单元 假设我们有…

Android 系统签名 keytool-importkeypair

要在 Android 项目中使用系统签名并将 APK 打包时与项目一起打包,可以按照以下步骤操作: 步骤 1:准备系统签名文件 从 Android 系统源码中获取系统签名文件,通常位于 build/target/product/security 目录下,包括 pla…

2.STM32F407ZGT6-外部中断

参考: 1.正点原子。 前言: MCU最重要的一个领域–中断。总结下嵌套向量和外部中断的概念。达到: 1.NVIC是什么,了解中断的整体管理理念。 2.中断里面最简单的外部中断,怎么配置处理。 3.使用STM32CubeMX配置外部中断的…

《HeadFirst设计模式》笔记(下)

代理模式 代理要做的就是控制和管理访问。 你的客户对象所做的就像是在做远程方法调用,但其实只是调用本地堆中的“代理”对象上的方法,再由代理处理所有网络通信的低层细节。 Java的RMI提供了客户辅助对象和服务辅助对象,为客户辅助对象…

Go Web 框架集合

1. Gin • 简介:Gin 是一个高性能的 Go Web 框架,设计目标是提供速度和高效性。它是 Go 语言中最受欢迎的 Web 框架之一。 • 特点: • 极高的性能,基于 httprouter。 • 支持中间件、JSON 渲染、路由分组等功能。 • 丰富的…