官方文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-types.html#_complex_datatypes
核心数据类型是 Elasticsearch 最基本和常用的数据类型,用于存储大部分数据。这些核心数据类型包括:
复杂数据类型允许存储结构化的数据,如对象、数组和嵌套字段。这些复杂数据类型包括:
使用复杂数据类型可以创建更灵活和复杂的数据结构,支持嵌套查询和聚合操作。
专用数据类型是 Elasticsearch 提供的特定用途的数据类型,用于解决特定领域的需求。这些专用数据类型包括:
专用数据类型使得 Elasticsearch 可以更好地处理与地理位置和网络地址相关的数据
1)指定id方式新增:
PUT /my_index/_doc/1
{
"title": "Elasticsearch",
"content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}
2)不指定id方式新增:
PUT /my_index/_doc
{
"title": "Elasticsearch",
"content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}
3)指定id的方式新增,防止因为id相同误修改,可以指定操作类型:
PUT /my_index/_doc/1?op_type=create
{
"title": "Elasticsearch",
"content": "Elasticsearch is a distributed, RESTful search and analytics engine."
}
4)开启自动创建索引:
查看auto_create_index开关状态:
GET /_cluster/settings
如上图所示没有auto_create_index字段,或者为false表示未开启
开启自动创建索引:
PUT _cluster/settings
{
"persistent": {
"action.auto_create_index": "true"
}
}
开启自动创建索引后,会更加数据格式自动匹配映射。
1)根据id查看
GET /my_index/_doc/1
2)查看多个
POST /my_index/_doc/mget
{
"ids" : ["1", "2"]
}
1)更新文档数据
POST /my_index/_doc/1/_update
{
"doc": {
"content": "Elasticsearch is a distributed, RESTful search and analytics platform."
}
}
2)向_source字段,增加⼀个字段
POST my_index/_update/1
{
"script": "ctx._source.lable = es"
}
3)向_source字段,删除⼀个字段
POST my_index/_update/1
{
"script": "ctx._source.remove(\"lable \")"
}
4)根据条件参数,更新指定⽂档的字段
upsert 当指定的⽂档不存在时,upsert参数包含的内容将会被插⼊到索引中,作为⼀个新⽂档;如果指定的⽂档存在,ElasticSearch引擎将会执⾏指定的更新逻辑。
POST my_index/_update/1
{
"script": {
"source": "ctx._source.lable+= params.lable",
"params": {
"lable": "good"
}
},
"upsert": {
"lable": "just so so"
}
}
DELETE /my_index/_doc/1