Elasticsearch 创建索引 Mapping映射属性 索引库操作 增删改查

Mapping Type映射属性

mapping是对索引库中文档的约束,有以下类型。

  • text:用于分析和全文搜索,通常适用于长文本字段。
  • keyword:用于精确匹配,不会进行分析,适用于标签、ID 等精确匹配场景。
  • integer、long、float、double:用于存储数字数据。
  • date:用于存储日期数据。
  • boolean:用于存储布尔值(true/false)。
  • object:用于嵌套对象,通常用于存储结构化的数据。
  • nested:与 object 类似,但允许嵌套查询。

Index属性

index 属性用于字段映射(mapping)中,来指示该字段是否被索引、是否可搜索,或者是否需要其他特殊的处理。该属性的设置直接影响字段的存储方式和搜索效率。在实际开发中,会有一些附带的值这些值并不需要搜索,如:备注,商品的封面URL等他默认是Index:true,需给这些字段设置成false。

analyzer 分词器

指定使用哪个分词器。

properties字段

用来表示字段。


索引库操作

Elasticsearch提供的所有API都是Restful的接口,遵循Restful的基本规范。

创建索引库

商品表字段

抽出搜索商品的字段

抽出搜索商品的字段在es创建索引。

  • 商品名称:参与搜索
  • 商品价格:参与搜索,按价格区间搜索
  • 商品封面:不参与搜索,搜索时需要一起返回
  • 限购次数:不参与搜索,搜索时需要一起返回

请求方式:PUT http://172.23.4.130:9200/goods

  • goods 库名
  • PUT Restful 风格
javascript 复制代码
{
    "mappings": {
        "properties": {
            "title": {
                "type": "text",
                "analyzer": "ik_smart"
            },
            "pie": {
                "type": "long"
            },
            "cover":
            {
                "type": "keyword",
                "index": false
            },
            "quota":{
                "type": "keyword",
                "index": false
            }
        }
        }
}

创建成功

javascript 复制代码
{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "goods"
}

查询所有

请求方式:GET http://172.23.4.130:9200/goods

查询成功

javascript 复制代码
{
    "goods": {
        "aliases": {},
        "mappings": {
            "properties": {
                "cover": {
                    "type": "keyword",
                    "index": false
                },
                "pie": {
                    "type": "long"
                },
                "quota": {
                    "type": "keyword",
                    "index": false
                },
                "title": {
                    "type": "text",
                    "analyzer": "ik_smart"
                }
            }
        },
        "settings": {
            "index": {
                "routing": {
                    "allocation": {
                        "include": {
                            "_tier_preference": "data_content"
                        }
                    }
                },
                "number_of_shards": "1",
                "provided_name": "goods",
                "creation_date": "1735986796036",
                "number_of_replicas": "1",
                "uuid": "jCkFMX3qSzimtWEmWHvpwQ",
                "version": {
                    "created": "7120199"
                }
            }
        }
    }
}

删除索引库

请求方式:DELETE http://172.23.4.130:9200/goods


修改索引库

在Elasticsearch不可以对已有的索引进行修改,但是可以添加新的索引。

请求方式:PUT http://172.23.4.130:9200/goods/_mapping

javascript 复制代码
{

    "properties": {
      "id": {
        "type": "keyword",
        "index": false
      }
    } 
}
相关推荐
2601_96387022几秒前
【计算机毕业设计】基于Spring Boot+Vue的高考志愿填报系统的设计与实现
spring boot·课程设计·高考
珐恩AI-人工智能3 分钟前
生成式引擎优化(GEO)全解:2026年AI检索时代企业长效流量运营方法论
大数据·人工智能·产品运营·流量运营·geo优化
liuxiaocheng3 分钟前
聊聊 Vercel AI SDK 的流式协议:前后端到底是怎么"边想边说"的
前端·后端
得物技术15 分钟前
得物知识问答:复合检索 Agent 的系统设计实践
人工智能·后端·ai编程
andongni20325 分钟前
SpringBoot 入门实验报告
java·spring boot·后端
天天爱吃肉821827 分钟前
【工程师笔记|新能源整车电控一次过CISPR25/BCI,汽车EMC/EMI落地十大核心设计技巧】
大数据·人工智能·笔记·python·汽车
李广坤40 分钟前
Agent 记忆系统详解:从"金鱼脑"到"过目不忘"的进化之路
后端
单词记忆方法研究1 小时前
探索上海背单词小程序品牌:高效学习工具的优化之路
大数据·学习·小程序
2601_957879331 小时前
没有视频团队的跨境电商,如何利用AI建立短视频内容生产体系?
大数据·人工智能
zerozrc01 小时前
Java 方法调用的底层原理
java·后端