当前位置: 首页 > 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.xdnf.cn/news/1059409.html

相关文章:

  • 使用duckduckgo_search python api 进行免费且不限次数的搜索
  • 设计模式精讲 Day 6:适配器模式(Adapter Pattern)
  • 设计模式之责任链模式
  • 《仿盒马》app开发技术分享--未完成订单列表展示逻辑优化(61)
  • SKUA-GOCAD入门教程-第八节 线的创建与编辑5
  • C/Fortran多核并行计算
  • wireshark过滤器的使用
  • tomcat 配置规范
  • stack 和 queue练习
  • 【面试题001】生产环境中如何排查MySQL CPU占用率高达100%?
  • linux kernel优化之rootfs
  • CANFD加速是什么?和CANFD有什么区别?
  • linux 下 jenkins 构建 uniapp node-sass 报错
  • 使用@SpringJUnitConfig注解开发遇到的空指针问题
  • spring-webmvc @InitBinder 典型用法
  • 《挑战你的控制力!开源项目小游戏学习“保持平衡”开发解析:用HTML+JS+CSS实现物理平衡挑战》​
  • 【51单片机】8. 矩阵LED显示自定义图案、动画
  • 用idea操作git缓存区回退、本地库回退、远程库回退
  • singlefligt使用方法和源码解读
  • 无需公网IP:Termux+手机+内网穿透实现Minecraft远程多人联机
  • Uniapp 中根据不同离开页面方式处理 `onHide` 的方法
  • python3:线程管理进程
  • 前端打断点
  • python校园服务交流系统
  • 第十八天:初级数据库学习笔记2
  • easyexcel基于模板生成报表
  • RabbitMQ七种工作模式
  • 21.加密系统函数
  • macOS版的节点小宝上架苹果APP Store了
  • git的使用——初步认识git和基础操作