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

}

相关推荐
牛奔3 小时前
Go 如何避免频繁抢占?
开发语言·后端·golang
寻星探路7 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
lly2024068 小时前
Bootstrap 警告框
开发语言
2601_949146539 小时前
C语言语音通知接口接入教程:如何使用C语言直接调用语音预警API
c语言·开发语言
曹牧9 小时前
Spring Boot:如何测试Java Controller中的POST请求?
java·开发语言
KYGALYX9 小时前
服务异步通信
开发语言·后端·微服务·ruby
zmzb01039 小时前
C++课后习题训练记录Day98
开发语言·c++
爬山算法10 小时前
Hibernate(90)如何在故障注入测试中使用Hibernate?
java·后端·hibernate
kfyty72510 小时前
集成 spring-ai 2.x 实践中遇到的一些问题及解决方案
java·人工智能·spring-ai