Settings 和 Mappings_Mappings_Ⅱ_案例|学习笔记

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 快速学习 Settings 和 Mappings_Mappings_Ⅱ_案例。

开发者学堂课程【ElasticSearch 最新快速入门教程Settings 和 Mappings_Mappings_Ⅱ_案例】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/642/detail/10681


Settings 和 Mappings_Mappings_Ⅱ_案例

 

内容介绍:

一、查询索引库元素值信息

二、操作不存在的索引

三、操作已存在的索引

 

一、查询索引库元素值信息

打开 Elasticsearch,此时存在 ok、chinese、bigdata、bank 四个索引库,如下:

查询 bigdata 索引库字段信息:

点击“基本查询”,在页面左上方操作框输入

http://node01.9200/bi

gdata/”,中央输入栏中输入“_mappings”,并在下拉列表中选择“GET”,点击“提交请求”即可查询 bigdata 索引库相关字段信息。

可以查询某一 dep 的mappings 值,如 product,则在左上方搜索框中输入http://node01.9200:/bigdata/product,在中央输入框输入_mapping,即可查询其 mapping 值。查询结果如下(部分):

{

"bigdata": {

"mappings": {

"product": {

"properties": {

"Product(name=SQOOP,author=null , last_versi

on=1)": {

"properties": {

"6": {

"properties": {

"5}": {

"fields": {

"keyword": {

"type": "keyword"

"ignore_above": 256

}

}

}

} ,

"author": {

"keyword": {

"type": "keyword"

"ignore_above": 256

"last_version": {

"type": "text",

"fields": {

"keyword": {

"type": "keyword"

"ignore_above": 256

}

...

...

此时显示结果为原始 JSON,若已经过定义,也可以在“提交请求”下方选择“图形视图”或“表格视图”。

 

二、操作不存在的索引

curl -XPUT 'localhost:9200/bigdata'

-d'{"mappings":{"emp":{"properties":{"name":{"type":"string","indexAnalyzer":"ik","searchanalyzer":"ik"} } } } }'

创建了一个索引库 bigdata,指定 mappings,其中 dep 的名称为 emp,其中的字段(properties)包括 name,其数据类型(type)为 string,分词器(indexAnalyzer)为 ik 分词器,搜索分词器(searchanalyzer)为 ik 分词器。

点击“基本查询”,在页面左上方操作框输入

http://node01.9200/bi

gdata/emp”,中央输入栏中输入“_mappings”,并在下拉列表中选择“PUT”。在下方输入框中输入如下内容:

{

"mappings": {

"emp": {

"properties": {

"name": {

"type":"string",

"indexAnalyzer":"ik",

"searchanalyzer":"ik"

}

}

点击“验证 JSON”,系统报错,即索引库 bigdata 已存在(index[bigdata/BN7REDzSRfy947JIHZmYvQ]already exist)因为该操作针对的是不存在的索引库,而 bigdata 已存在,则必须修改上方搜索框内容。

搜索框内容修正为http://node01.9200/text再提交,发现仍旧报错,创建 emp 失败,进入“复合查询”,发现并未成功创建 text 索引库,提示原因为 Failed to parse mapping [emp]:No handler for type [string] declared on field [name],即没有类型为 string 的处理器声明为 name 字段。

若将下方输入框的内容修改为如下内容:

{

"mappings": {

"emp": {

"properties": {

"name": {

"type":"text",

"indexAnalyzer":"ik",

"searchanalyzer":"ik"

}

即将字段 name 的类型改为 text,提交申请,仍报错,提示原因为:Mapping definition for [name] has unsupported parameters:[searchAnalyzer:ik] [indexAnalyzer:ik],即 name 字段不支持 searchA=nalyzer:ik 和indexAnalyzer:ik。

进入官网 github.com,在页面右上角搜索框中输入 ik,点击搜索结果中第一条“medcl/elasticsearch-analysis-ik”,结果中包含 Elasticsearch 与 ik 的定义关系,创建映射中(create a mapping)显示字段定义部分的内容:

"properties": {

"content": {

"type":"text",

"analyzer":"ik_max_word",

"search_analyzer":"ik_smart"

故将下方的文本输入框中的内容修改为:

{

"mappings": {

"emp": {

"properties": {

"name": {

"type":"text",

"analyzer":"ik_max_word",

"search_analyzer":"ik_smart"

}

}

再次点击“提交请求”,结果显示正确。

以上报错原因可能为新的版本不支持原本输入的旧语法。

点击“概览”,并刷新,发现此时已存在名为“test”的索引库。点击其下方的“信息”中的“索引信息”,即可查询到该索引库的相关信息(包括 provided_name 等信息)。

 

三、操作已存在的索引

curl -XPOST  http://localhost:9200/bigdata/dep/_mapping

-d'{"properties":{"name":{"type":"string","indexAnalyzer":"ik","searchanalyzer":"ik"} } } '

在“概览”中查询,点击 OK 索引库的索引信息,发现 context 字段不支持 ik 分词器,因为在创建 dep 时没有进行定制。并且可以发现其中含有一个名为 news 的 dep。

回到 Elasticsearch,点击“复合查询”,在最上方搜索框中输入“http://node01.9200/ok/news”,中间输入框中输入“_mapping”,右方最下方文本输入框中输入以下内容:

{

"properties": {

"context": {

"type":"text",

"analyzer":"ik_max_word",

"search_analyzer":"ik_smart"

}

点击“提交请求”后,进入“概览”页面,刷新,索引库 OK 下方的索引信息中则出现了"analyzer":"ik_max_word"及"search_analyzer":"ik_smart"的信息。

总结:

Mappings 是用来操作索引库中特定 dep 的元素值信息,其中包括 dep 中的字段类型、分词器类型等。

若操作的是不存在的索引,则进入索引库时应指定一个 dep,为该 dep 定制相应的元素值信息;而对于已存在的索引,则使用 POST 的方式,直接定位到索引库中的 dep,方可针对特定属性进行修改。

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
Java Serverless Spring
org.springframework.boot.loader.JarLaunche
org.springframework.boot.loader.JarLaunche
1104 3
|
人工智能 KVM 云计算
阿里云郑晓:浅谈GPU虚拟化技术(第一章)
本文介绍GPU虚拟化的方方面面
14345 1
阿里云郑晓:浅谈GPU虚拟化技术(第一章)
|
7月前
|
人工智能 缓存 UED
deepseek-vue3ai流式输出AI对话助手
原创新作vue3.5+deepseek+vite6+vant4仿DeepSeek-R1流式输出ai聊天对话。支持AI流式打字输出效果、浅色/暗黑主题模式、代码高亮、针对移动端+PC端适配处理。
650 65
|
数据采集 Web App开发 API
虾皮(Shopee)商品详情数据接口详解
虾皮(Shopee)是东南亚与台湾领先的电商市场,为买卖双方搭建桥梁。本文介绍如何利用网页爬虫技术获取商品详情数据,适用于无API访问权限的情况。通过Python的`requests`和`beautifulsoup4`库,可从网页中提取信息。首先需安装上述库,然后使用示例代码发送HTTP请求并解析HTML。注意遵守虾皮的服务条款,应对可能的动态内容和反爬虫措施。对于API需求,建议查阅官方文档。
467 3
|
11月前
|
监控 关系型数据库 MySQL
分析慢查询日志
【10月更文挑战第29天】分析慢查询日志
253 3
|
存储 编解码 UED
网站图片JPG、PNG、GIF哪个好,该选择谁
网站图片JPG、PNG、GIF哪个好,该选择谁
600 0
|
数据管理 大数据 数据库
全国首张!阿里云获DCMM乙方5级
全国首张!阿里云获DCMM乙方5级
544 0
|
算法 安全 Java
Java中MD5加密算法的原理与实现详解
Java中MD5加密算法的原理与实现详解
|
存储 安全 Java
深入解析 Java 中的 Synchronized:原理、实现与性能优化
深入解析 Java 中的 Synchronized:原理、实现与性能优化
458 1
|
Web App开发 JSON 小程序
苹果app开发apple-app-site-association文件配置
apple-app-site-association 是苹果的配置文件,用于建立app和网站关联,支持Universal Links,使点击网站链接能直接打开相应app内部页面。配置文件为JSON格式,需上传至服务器`.well-known`目录或根目录。通过检查三个链接来测试配置,确保Content-Type为`application/json`。成功配置后,点击链接能在iPhone备忘录或Safari中直接唤起app,但可能有24-48小时延迟。