ES分布式搜索-索引库操作

索引库操作

1、mapping映射属性

可以查看官方文档学习:ES官方手册

mapping是对索引库中文档的约束,常见的mapping属性包括:

  • type:字段数据类型,常见的简单类型有:

    • 字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址)

    • 数值:long、integer、short、byte、double、float、

    • 布尔:boolean

    • 日期:date

    • 对象:object
  • index:是否创建索引,默认为true
  • analyzer:使用哪种分词器(绝大多数情况下分词text即可)
  • properties:该字段的子字段

2、创建索引库

ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来表示。创建索引库和mapping的DSL语法如下:

JSON 复制代码
PUT /索引库名称
{
  "mappings": {
    "properties": {
      "字段名":{
        "type": "text",
        "analyzer": "ik_smart"
      },
      "字段名2":{
        "type": "keyword",
        "index": "false"
      },
      "字段名3":{
        "properties": {
          "子字段": {
            "type": "keyword"
          }
        }
      },
      // ...略
    }
  }
}

例如:

json 复制代码
# 创建名为rediaz的索引库
PUT /rediaz
{
  "mappings": {
    "properties": {
      "info": {
        "type": "text",
        "analyzer": "ik_smart"
      },
      "email": {
        "type": "keyword",
        "index": false  //不会创建索引,不会被搜索
      },
      "name": {
        "type": "object",
        "properties": {
          "firstname": {
            "type": "keyword"
          },
          "lastname": {
            "type": "keyword"
          }
        }
      }
    }
  }
}

索引库创建结果:

json 复制代码
{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "rediaz"
}

3、查询、删除和修改索引库

  1. 查询:

    json 复制代码
    GET /索引库名

    示例:

    josn 复制代码
    GET /rediaz
  2. 删除:

    json 复制代码
    DELETE /索引库名

    示例:

    json 复制代码
    DELETE /rediaz
  3. 修改:

    在ES中禁止修改索引库:在索引库创建成功之后,其数据结构(即mapping映射)已经创建好了,ES会基于mapping来创建倒排索引,如果修改索引库,则会将ES库中的所有倒排索引失效。

    但是可以添加新的字段:

    json 复制代码
    PUT /索引库名/_mapping
    {
    "properties" : {
      "新字段名":{
        "type" : "integer "}
      }
    }

    示例:

    json 复制代码
    PUT /rediaz/_mapping
    {
    "properties" : {
      "age":{
        "type" : "integer"}
      }
    }
相关推荐
Elasticsearch1 天前
通用表达式语言 ( CEL ): CEL 输入如何改进 Elastic Agent 集成中的数据收集
elasticsearch
武子康1 天前
大数据-236 离线数仓 - 会员指标验证、DataX 导出与广告业务 ODS/DWD/ADS 全流程
大数据·后端·apache hive
初次攀爬者2 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
武子康2 天前
大数据-235 离线数仓 - 实战:Flume+HDFS+Hive 搭建 ODS/DWD/DWS/ADS 会员分析链路
大数据·后端·apache hive
DianSan_ERP3 天前
电商API接口全链路监控:构建坚不可摧的线上运维防线
大数据·运维·网络·人工智能·git·servlet
够快云库3 天前
能源行业非结构化数据治理实战:从数据沼泽到智能资产
大数据·人工智能·机器学习·企业文件安全
AI周红伟3 天前
周红伟:智能体全栈构建实操:OpenClaw部署+Agent Skills+Seedance+RAG从入门到实战
大数据·人工智能·大模型·智能体
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js高考推荐系统 高考可视化 大数据毕业设计(源码+LW文档+PPT+详细讲解)
大数据·vue.js·hadoop·django·毕业设计·课程设计·推荐算法
计算机程序猿学长3 天前
大数据毕业设计-基于django的音乐网站数据分析管理系统的设计与实现(源码+LW+部署文档+全bao+远程调试+代码讲解等)
大数据·django·课程设计
B站计算机毕业设计超人3 天前
计算机毕业设计Django+Vue.js音乐推荐系统 音乐可视化 大数据毕业设计 (源码+文档+PPT+讲解)
大数据·vue.js·hadoop·python·spark·django·课程设计