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": "aaa@qq.com",

"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

}

相关推荐
萧曵 丶2 分钟前
JDK各版本新增特性详解
java·面试
2501_946244783 分钟前
Flutter & OpenHarmony OA系统设置页面组件开发指南
开发语言·javascript·flutter
一分半心动6 分钟前
清理C盘的python脚本
开发语言·python
毅炼26 分钟前
hot100打卡——day08
java·数据结构·算法·leetcode·深度优先
一只鹿鹿鹿33 分钟前
网络信息与数据安全建设方案
大数据·运维·开发语言·网络·mysql
a努力。36 分钟前
国家电网Java面试被问:慢查询的优化方案
java·开发语言·面试
@小码农1 小时前
202512 电子学会 Scratch图形化编程等级考试四级真题(附答案)
java·开发语言·算法
ejjdhdjdjdjdjjsl1 小时前
C#类型转换与异常处理全解析
开发语言·c#
程序猿ZhangSir1 小时前
深入理解 BIO,NIO,AIO 三者的用途和区别?Select,poll,epoll 操作系统函数简介
java·spring·nio
智航GIS1 小时前
6.2 while循环
java·前端·python