当前位置: 首页 > news >正文

Elasticsearch:Mapping-映射

一、创建索引 自动生成索引字段数据类型即自动映射

创建之前,先删除索引防止重复创建
删除索引:

DELETE product_mapping

创建索引 product_mapping并且赋值

PUT /product_mapping/_doc/1
{"name": "xiaomi phone","desc": "shouji zhong de zhandouji","count": 123456,"price": 123.123,"date": "2020-05-20","isdel": false,"tags": ["xingjiabi","fashao","buka"]
}

执行结束:索引创建成功。

{"_index" : "product_mapping","_type" : "_doc","_id" : "1","_version" : 1,"result" : "created","_shards" : {"total" : 2,"successful" : 1,"failed" : 0},"_seq_no" : 0,"_primary_term" : 1
}

查询索引

GET product_mapping/_search

执行结果:

{"took" : 0,"timed_out" : false,"_shards" : {"total" : 1,"successful" : 1,"skipped" : 0,"failed" : 0},"hits" : {"total" : {"value" : 1,"relation" : "eq"},"max_score" : 1.0,"hits" : [{"_index" : "product_mapping","_type" : "_doc","_id" : "1","_score" : 1.0,"_source" : {"name" : "xiaomi phone","desc" : "shouji zhong de zhandouji","count" : 123456,"price" : 123.123,"date" : "2020-05-20","isdel" : false,"tags" : ["xingjiabi","fashao","buka"]}}]}
}

查询索引自动生成的映射

GET product_mapping/_mapping

结果如下:

{"product_mapping" : {"mappings" : {"properties" : {"count" : {"type" : "long"},"date" : {"type" : "date"},"desc" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"isdel" : {"type" : "boolean"},"name" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}},"price" : {"type" : "float"},"tags" : {"type" : "text","fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}}}}}
}

总结:
根据put创建索引赋值的时候每个字段的数据,动态的生成了字段的属性,可以类比mysql的表结构的字段属性,这里重点介绍一下text类型,即文本类型,在创建索引的时候,如果是text类型的,那么会对这个字段进行索引,生成倒排索引进行存储,后续查询的时候,如果查询方式也支持对搜索的内容进行索引分词,那么就会把搜索条件分词后的词项和生成索引的时候索引的列的词项进行匹配。

"fields" : {"keyword" : {"type" : "keyword","ignore_above" : 256}}

这个keyword,不会分词,如果text需要精准匹配,可以用该字段的keyword.
1.“name”: “xiaomi phone”,在创建索引的时候,这个会被分词为xiaomi 和 phone两个词项,下面的查询方式
搜索内容无论是xiaomi 或者 phone 还是两个顺序颠倒,都能匹配到,因为会对搜索条件进行分词为xiaomi 或者 phone,匹配索引分词后的词根会匹配到。

GET product_mapping/_search
{"query": {"match": {"name": "phone xiaomi "}}
}

name.keyword 就是查询索引中name分词前为xiaomi 的内容,因为name分词前只有xiaomi phone,所以这样查询不到

GET product_mapping/_search
{"query": {"match": {"name.keyword": " xiaomi "}}
}

下面这样的方式可以匹配的到

GET product_mapping/_search
{"query": {"match": {"name.keyword": "xiaomi phone"}}
}

二、创建索引 手动映射数据类型

手动创建索引和mapping映射

PUT /product
{"mappings": {"properties": {"date": {"type": "text"},"desc": {"type": "text","analyzer": "english"},"name": {"type": "text","index": "false"},"price": {"type": "long"},"tags": {"type": "text","index": "true"},"parts": {"type": "object"},"partlist": {"type": "nested"}}}
}

name的属性"index": "false"表示创建索引的时候不进行分词。

GET /product/_search
{"query": {"match": {"name": "xiaomi"}}
}

执行会报错

{"error" : {"root_cause" : [{"type" : "query_shard_exception","reason" : "failed to create query: Cannot search on field [name] since it is not indexed.","index_uuid" : "wEUFSz6VQmaC6Ko9oE3cxQ","index" : "product"}],"type" : "search_phase_execution_exception","reason" : "all shards failed","phase" : "query","grouped" : true,"failed_shards" : [{"shard" : 0,"index" : "product","node" : "QaQYrOAFRr2kwyt6IuJU9Q","reason" : {"type" : "query_shard_exception","reason" : "failed to create query: Cannot search on field [name] since it is not indexed.","index_uuid" : "wEUFSz6VQmaC6Ko9oE3cxQ","index" : "product","caused_by" : {"type" : "illegal_argument_exception","reason" : "Cannot search on field [name] since it is not indexed."}}}]},"status" : 400
}

相关文章:

Elasticsearch:Mapping-映射

一、创建索引 自动生成索引字段数据类型即自动映射 创建之前,先删除索引防止重复创建 删除索引: DELETE product_mapping创建索引 product_mapping并且赋值 PUT /product_mapping/_doc/1 {"name": "xiaomi phone","desc": "s…...

安装Tensorflow@FreeBSD(失败)

pkg 安装,失败,找不到:pkg: No packages available to install matching science/py-tensorflow have been found in the repositories ports安装 cd /usr/ports/science/py-tensorflow make install 报错: 按照提示重新发命令 make DISABLE_VULNERA…...

API接口示例:电商商品评论数据

当然,以下是一个简化的电商商品评论数据API接口的示例。请注意,这只是一个示例,实际的API接口可能会更加复杂,并且会包含更多的验证、错误处理和安全措施。 API接口示例:电商商品评论数据 基础信息 API名称&#xf…...

使用idea创建一个JAVA WEB项目

文章目录 1. javaweb项目简介2. 创建2.1 idea新建项目2.2 选择,命名2.3 打开2.4 选择tomcat运行2.5 结果 3. 总结 1. javaweb项目简介 JavaWeb项目是一种基于Java技术的Web应用程序,主要用于开发动态网页和Web服务。这种项目能够构建在Java技术栈之上&a…...

解决MyBatis在 Oracle 中使用 IN 语句不能超过 1000 问题

在 Oracle 数据库中,IN 语句常用于查询某个字段是否属于一组特定的值。对于大多数开发者而言,IN 是一种简单直观的查询方式,能够提升开发效率,避免过多的 OR 语句。然而,许多人在使用 IN 语句时可能遇到一个问题&#…...

最长递增子序列两种算法实现(动态规划,二分查找)

恭喜你刷到博主 DP 经典题目详解部分第一期,想学好 DP 请关注订阅,会持续更新!!!!! 建议先阅读DP算法入门 00001 最长递增子序列(Longest Increasing Subsequence,简写…...

Deepmotion技术浅析(三):特征提取

DeepMotion 的特征提取模块是整个动作捕捉和 3D 追踪流程的基础,负责从输入的视频帧中提取出具有代表性的视觉特征。这些特征将被用于人体姿态估计、动作识别、3D 重建等后续任务。 包括: 1.图像特征提取 卷积神经网络(CNN) 卷…...

国内CentOS使用yum安装docker和docker-compose

安装docker 安装需要的软件包, yum-util 提供yum-config-manager功能,另两个是devicemapper驱动依赖 yum install -y yum-utils device-mapper-persistent-data lvm2下载yum源采用阿里云的镜像源 wget -O /etc/yum.repos.d/docker-ce.repo https://mi…...

python学opencv|读取图像(十三)BGR图像和HSV图像互相转换深入

【1】引言 前序学习过程中,我们偶然发现:如果原始图像是png格式,将其从BGR转向HSV,再从HSV转回BGR后,图像的效果要好于JPG格式。 文章链接为: python学opencv|读取图像(十二)BGR图…...

【鸿蒙实战开发】数据的下拉刷新与上拉加载

本章介绍 本章主要介绍 ArkUI 开发中最常用的场景下拉刷新, 上拉加载,在本章中介绍的内容在实际开发过程当中会高频的使用,所以同学们要牢记本章的内容。下面就让我们开始今天的讲解吧! List 组件 在 ArkUI 中List容器组件也可以实现数据滚动的效果&a…...

面向对象设计规则和各类设计模式

面向对象设计(Object-Oriented Design, OOD)是一种软件设计方法论,它使用对象、类、继承、封装、多态等概念来组织代码。面向对象设计的核心目标是提高软件的可维护性、可扩展性和复用性。在面向对象设计中,遵循一定的设计原则和模…...

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(六)

《拉依达的嵌入式\驱动面试宝典》—C/CPP基础篇(六) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…...

利用Docker分层构建优化镜像大小

合适docker镜像文件大小不仅影响容器启动效率,也影响资源占用效率。本文介绍如何利用分层方式构建docker镜像,采用多种方式避免镜像文件太大而影响性能。 Docker 镜像大小优化的重要性 资源利用效率 较小的镜像文件在存储和传输过程中占用更少的空间和带…...

Spring 魔法探秘:从 Bean 线程安全到事务魔法全解析

1.Spring 框架中的单例 Bean 是线程安全的么? Spring 框架中的单例 Bean 本身并不保证线程安全性。单例模式意味着在整个应用程序的生命周期中,只会创建该 Bean 的一个实例,并且所有对该 Bean 的请求都将共享这个实例。 线程安全与否取决于…...

[Maven]IDEA父工程创建子工程后父工程不可运行

IDEA在使用maven构建项目时,如果你在当前工程下创建一个子工程,那么原有的工程(变为父工程的工程)原有的代码通常会变得不可运行。 这是因为,使用maven创建父子工程关系后,IDEA会自动变更项目的模块相关配置。 比如这是我maven工程…...

【系统移植】在开发板上加载内核和根文件系统的三种方法

实现环境:ubuntu24.04和FS4412实验平台。 要在开发板上运行linux操作系统,首先要将linux内核镜像(uImage)、设备树(dexynos4412-fs4412.dtb)和根文件系统镜像(ramdisk.img)加载到开发板内存。有以下几种方式加载: 一、通过tftp加载内核和根文件系统 二、通过EMMC加…...

#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍02-基于错误消息的SQL注入(Error-Based SQL Injection)

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

数据结构-排序(来自于王道)

排序的基本概念 插入排序 在这个算法中,除了输入的数组本身,没有使用额外的数据结构来存储数据,所有的操作都是在原数组上进行的。因此,无论输入数组的大小 n 是多少,算法执行过程中所占用的额外空间是固定的&#xff…...

【蓝桥杯选拔赛真题93】Scratch青蛙过河 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析

目录 Scratch青蛙过河 一、题目要求 编程实现 二、案例分析 1、角色分析 2、背景分析 3、前期准备 三、解题思路 1、思路分析 2、详细过程 四、程序编写 五、考点分析 六、推荐资料 1、入门基础 2、蓝桥杯比赛 3、考级资料 4、视频课程 5、python资料 Scr…...

ReactPress最佳实践—搭建导航网站实战

Github项目地址:https://github.com/fecommunity/easy-blog 欢迎Star。 近期,阮一峰在科技爱好者周刊第 325 期中推荐了一款开源工具——ReactPress,ReactPress一个基于 Next.js 的博客和 CMS 系统,可查看 demo站点。(…...

如何快速部署Fay数字人情感分析模型:从配置到性能测试的完整指南

如何快速部署Fay数字人情感分析模型:从配置到性能测试的完整指南 【免费下载链接】Fay fay是一个帮助数字人(2.5d、3d、移动、pc、网页)或大语言模型(openai兼容、deepseek)连通业务系统的agent框架。 项目地址: htt…...

松下Panasonic伺服调试软件(支持MINAS - A/A3/A4/B/E/S系列与MDD...

松下Panasonic 伺服调试 软件 支持MINAS-A A3 A4 B E S 英文版 MDDA、MHDA、MSMA、MSDA、MDMA、可以修改参数、JOG点动调试、参数拷贝、复制等 松下 伺服 软件刚拿到台新拆箱的MHDA-MA3A1A伺服驱动器?或者翻出实验室积灰好几年的MSMA电机搭MDDA A1板子练手&#xff…...

造相-Z-Image-Turbo LoRA镜像合规性:符合中国AI生成内容标识与内容安全要求

造相-Z-Image-Turbo LoRA镜像合规性:符合AI生成内容标识与内容安全要求 1. 项目概述与核心价值 造相-Z-Image-Turbo LoRA镜像是一个基于先进AI技术的图片生成Web服务,专门为需要高质量图像生成的用户设计。这个服务不仅提供了强大的图像生成能力&#…...

【电池特征提取+SOH估计】基于PINN物理信息神经网络的锂电池SOH估计 Matlab代码(多输入单输出)

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。👇 关注我领取海量matlab电子书和数学建模资料🍊个人信条:格物致知,完整Matl…...

AI赋能表格,打破Excel痛点,重构数据处理新效率

在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...

imx6ull静态IP配置与MobaXterm远程登录实战指南

1. imx6ull开发板静态IP配置全流程 第一次接触imx6ull开发板时,最让人头疼的就是每次重启后IP地址都会变化。想象一下,你刚调试好的远程连接,重启设备后就找不到了,这种体验实在太糟糕了。今天我就来分享一个彻底解决这个问题的方…...

PLC控制四轴攻丝机全伺服工程案例(含接线图):附带启动停止原点定位等控制指令详解及文本屏即用程序

plc控制伺服电机 四轴攻丝机案例(包含伺服接线图) 该程序为plc控制伺服电机的工程案例包含伺服电机接线图,包含程序流程的详细解释说明 程序包括伺服电机的启动,停止,原点定位,回归原点,位置控制以及方向控制包括了所有…...

spring-ai 第一步集成入门

spring-ai 第一步入门 官网spring ai 做什么?涉及相关概念检索增加RAG工具调用 spring-ai 第一步入门 官网 spring-ai网址【https://spring.io/projects/spring-ai】 Spring AI 目前支持将输入和输出处理为语言、图像和音频的模型 spring ai 做什么?…...

从电路仿真到面包板:手把手验证三端LC振荡器的相位平衡条件(附Multisim文件)

从电路仿真到面包板:手把手验证三端LC振荡器的相位平衡条件 在电子电路设计中,LC振荡器作为基础却至关重要的电路模块,其稳定性和可靠性直接影响整个系统的性能。而相位平衡条件,这个看似简单的"两同(电抗性质&am…...

读2025世界前沿技术发展报告30海洋技术发展(下)

1. 强化无人及反无人作战能力建设1.1. 英美发布相关战略文件,顶层规划无人、反无人作战能力建设1.1.1. 《无人机战略》文件,分析无人系统对传统战争形态转变的影响1.1.2. 《反无人系统战略》1.1.2.1. ​包括设立联合反小型无人机系统办公室(J…...