7.索引库操作

mapping映射属性

mapping是对索引库中文档的约束

常见的mapping属性包括:

type字段数据类型,常见的简单类型有:

字符串:text (可分词的文本) keyword(精确值,例如:品牌、国家,ip地址)

数值:long integer short byte double float

布尔:boolean

日期:date

对象:object,例如下面name字段的值就是一个json对象。

index是否创建索引,默认为true,表示创建倒排索引,会参与到搜索。false表示不会创建倒排索引,不会参与搜索。

analyzer: 使用哪种分词器,跟上面type为text的字段结合使用。

properties:该字段的子字段。例如下面指定name字段的子属性firstName和lastName。

es没有数组类型,但是es中允许字段有多个值,所以支持存储数组数据。只需要关注数组中元素的类型就可以了。

{

"age": 22,

"weight": 52.1,

"isMarried": false,

"info": "我是一个程序员,很有才华的哟",

"email": "[email protected]",

"score": [99, 85, 77],

"name": {

"firstName": "云",

"lastName": "赵"

}

}

索引库的CRUD

1.创建索引库和mapping的DSL语句

创建索引库person,并定义字段mapping

PUT /person

{

"mappings": {

"properties": {

"info": {

"type": "text",

"analyzer": "ik_smart"

},

"email": {

"type": "keyword",

"index": "false"

},

"name": {

"type": "object",

"properties": {

"firstName": {

"type": "keyword"

},

"lastName": {

"type": "keyword"

}

}

},

"age": {

"type": "integer"

},

"weight": {

"type": "float"

},

"isMarried": {

"type": "boolean"

},

"score": {

"type": "integer"

},

"birthday": {

"type": "date"

}

}

}

}

执行结果:

{

"acknowledged" : true,

"shards_acknowledged" : true,

"index" : "person"

}

2.查询索引库

GET /person

3.删除索引库

delete /person

4.修改索引库

在es中可以允许添加新字段,只是禁止修改原字段。

PUT /person/_mapping

{

"properties": {

"heigh":{

"type": "float"

}

}

}
{

"acknowledged" : true

}

相关推荐
Cyrus_柯11 分钟前
C++(面向对象编程——关键字)
开发语言·c++·算法·面向对象
大龄Python青年15 分钟前
C语言 函数怎样通过数组来返回多个值
c语言·开发语言
LQYYDSY20 分钟前
【C语言极简自学笔记】重讲运算符
c语言·开发语言·笔记
2013编程爱好者20 分钟前
C++二分查找
开发语言·c++·算法·二分查找
电商数据girl30 分钟前
【经验分享】浅谈京东商品SKU接口的技术实现原理
java·开发语言·前端·数据库·经验分享·eclipse·json
十五年专注C++开发1 小时前
QSimpleUpdater:解锁 Qt 应用自动更新的全新姿势
开发语言·c++·qt
小猫咪怎么会有坏心思呢1 小时前
华为OD机考-货币单位换算-字符串(JAVA 2025B卷)
java·开发语言·华为od
想不到耶2 小时前
Vue3轮播图组件,当前轮播区域有当前图和左右两边图,两边图各显示一半,支持点击跳转和手动滑动切换
开发语言·前端·javascript
虾球xz2 小时前
CppCon 2016 学习:BUILDING A MODERN C++ FORGE FOR COMPUTE AND GRAPHICS
开发语言·c++·学习
一坨阿亮2 小时前
MyBatis原理
java·开发语言·mybatis