当前位置: 首页 > news >正文

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
}

http://www.lryc.cn/news/571840.html

相关文章:

  • 代码随想录算法训练营day8
  • 前端打断点
  • SSRF7 SSRF漏洞的检测方式
  • Uniapp 中根据不同离开页面方式处理 `onHide` 的方法
  • 意法STM32F103C8T6 单片机ARM Cortex-M3 国民MCU 电机控制到物联网专用
  • Ubuntu22.04安装opengauss并配置远程访问、JDBC连接
  • 2025年中总结
  • 项目:Gitlab HSD CI/CD总结
  • 从零Gazebo中实现Cartographer算法建图(新目录)
  • Win11用户尽快删除更新!微软6月又推Bug
  • VGG-19(Visual Geometry Group)模型
  • Linux系统移植11:修改网络驱动
  • 获取jenkins中的构建数据
  • FPGA基础 -- Verilog行为级建模之时序控制
  • markRaw
  • 【java中使用stream处理list数据提取其中的某个字段,并由List<String>转为List<Long>】
  • 爱普特APT32F1104C8T6单片机 高抗干扰+硬件加密双保障
  • 支持向量机(SVM)例题
  • VS Code自动删除末尾空行设置
  • 无需公网IP:Termux+手机+内网穿透实现Minecraft远程多人联机
  • Python从入门到精通
  • Python数据操作
  • Docker搭建RabbitMQ集群环境
  • 机器学习重构光子学设计范式:从智能器件到前沿系统
  • 【力扣每日一题】划分数组并满足最大差限制
  • iOS开发中的安全实践:如何通过Ipa混淆与加固确保应用安全
  • AI 技术落地实战:开发流程优化、行业场景重塑与前沿应用洞察
  • Evertz SVDN 3080ipx-10G Web管理接口任意命令注入及认证绕过漏洞(CVE-2025-4009)
  • Hive 逻辑优化器
  • 持续集成 CI/CD-Jenkins持续集成GitLab项目打包docker镜像推送k8s集群并部署至rancher