SpringCloud——分布式搜索elasticsearch之索引库操作

mapping映射属性

概念:Mapping属性是在Elasticsearch中用于定义索引中字段的类型和属性的设置。它描述了如何将文档的字段映射到底层的索引结构中。

Mapping属性在Elasticsearch中类似于MySQL中的表结构定义。它们都用于定义数据的结构和类型,以确保数据在存储和查询时的一致性和准确性。

在Elasticsearch中,常见的Mapping属性包括:

type:字段的数据类型
index:是否索引
analyzer:分词器
properties:子字段

type的简单类型
字符串:text(可分词文本)、keyword(精确值)
数值: long 、integer 、short 、byte、 double、 float
布尔:boolean
日期: date
对象:object

index的类型
true: 创建索引,可以进行搜索
false:不创建索引不可以进行搜索

analyzer的类型
分词器类型,如ik_smart、ik_max_word、english

properties
该字段的子字段

了解完mapping的常见属性之后第一感觉可能很蒙,我们可以试着根据实际案例来理解mapping属性。

索引库的增删改查

1、创建索引库:

PUT /my_index
{
    
    
  "mappings": {
    
    
    "properties": {
    
    
      "title": {
    
    
        "type": "text",
        "analyzer": "ik_smart"
      },
      "emali": {
    
    
        "type": "keyword",
        "index": "false"
      },
      "name": {
    
    
        "type": "object", 
        "properties": {
    
    
          "firstname":{
    
    
            "type":"keyword"
          }
        }
      },
      "price": {
    
    
        "type": "double"
      },
      "created_at": {
    
    
        "type": "date",
        "format": "yyyy-MM-dd"
      }
    }
  }
}

在这里插入图片描述

2、查询索引库:

要查询 Elasticsearch 中的索引,可以使用以下语法:

1、获取所有索引

GET /_cat/indices

在这里插入图片描述
2、查找特定索引是否存在

HEAD /<索引名称>

这将返回一个状态码,指示索引是否存在。如果返回 200 OK,则表示索引存在;如果返回 404 Not Found,则表示索引不存在。

例如:

HEAD /my_index

在这里插入图片描述

3、获取索引的映射(mapping):

GET /<索引名称>/_mapping

在这里插入图片描述
4、搜索索引中的文档:

GET /<索引名称>/_search
{
    
    
  "query": {
    
    
    "match_all": {
    
    }
  }
}

这里搜索了一个包含文档数据的索引库
在这里插入图片描述

3、删除索引库:

DELETE /<索引库名>

例如,要删除名为my_index的索引,可以执行以下请求:

DELETE /my_index

执行该请求后,如果索引存在并成功删除,您将收到一个表示成功的响应。例如,响应中的acknowledged字段将为true,表示删除操作已被确认,删除索引是一个不可逆的操作,请谨慎执行。
在这里插入图片描述

4、修改索引库:

索引库一旦创建就无法在进行修改了,但是我们可以添加新的字段,案例如下:

PUT /my_index/_mapping
{
    
    
  "properties": {
    
    
    "field1": {
    
    
      "type": "text"
    },
    "field2": {
    
    
      "type": "keyword"
    }
  }
}

上述示例中,我们将索引my_index的映射修改为包含两个字段field1和field2。field1的类型为"text",field2的类型为"keyword"。
**注意:**我们需要保证索引库存在,如果不存在则会报错。同时我们要注意新添加的字段名不能跟原来的重复,除非定义类型也相同。

在这里插入图片描述
总结
1、创建索引库:使用PUT请求创建一个新的索引库,并定义其名称、映射和设置等属性。

2、删除索引库:使用DELETE请求删除整个索引库及其所有文档和设置。

3、修改索引库设置:使用PUT请求修改索引库的设置,例如分片数、副本数等。

4、查看索引库:使用GET请求检索现有的索引库信息,包括索引名称、映射、设置等。

猜你喜欢

转载自blog.csdn.net/qq_52227892/article/details/131060750