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

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语法如下:

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

例如:

# 创建名为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"}}}}}
}

索引库创建结果:

{"acknowledged" : true,"shards_acknowledged" : true,"index" : "rediaz"
}

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

  1. 查询:

    GET /索引库名
    

    示例:

    GET /rediaz
    
  2. 删除:

    DELETE /索引库名
    

    示例:

    DELETE /rediaz
    
  3. 修改:

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

    但是可以添加新的字段:

    PUT /索引库名/_mapping
    {
    "properties" : {"新字段名":{"type" : "integer "}}
    }
    

    示例:

    PUT /rediaz/_mapping
    {
    "properties" : {"age":{"type" : "integer"}}
    }
    

相关文章:

  • 【HTML】HTML基础7.3(自定义列表)
  • Java字符串处理基础:掌握字符串的各种操作技巧
  • Apache POI 解析和处理Excel
  • Mysql数据库-基本表操作
  • LVS----DR模式
  • 【C#图解教程】笔记
  • Text Field文本输入框
  • ABA关键词选品,大卖成功打造亚马逊爆款的秘密武器
  • 【RHCSA问答题】第八章 监控和管理Linux进程
  • 云上攻防-云产品篇堡垒机场景JumpServer绿盟SASTeleport麒麟齐治
  • 异步编程实战:使用C#实现FTP文件下载及超时控制
  • 代码详解:2024美团春招实习笔试第一场0309,是难还是简单?
  • 微信小程序如何实现下拉刷新
  • 利用SQL Server 进行报表统计的关键SQL语句与函数
  • Elasticsearch从入门到精通-03基本语法学习
  • [分享]iOS开发 - 实现UITableView Plain SectionView和table不停留一起滑动
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • CEF与代理
  • Facebook AccountKit 接入的坑点
  • iOS 系统授权开发
  • Java深入 - 深入理解Java集合
  • js递归,无限分级树形折叠菜单
  • leetcode386. Lexicographical Numbers
  • Mysql5.6主从复制
  • python3 使用 asyncio 代替线程
  • Spring Cloud中负载均衡器概览
  • 大主子表关联的性能优化方法
  • 关于List、List?、ListObject的区别
  • 聊聊redis的数据结构的应用
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 提醒我喝水chrome插件开发指南
  • 我的面试准备过程--容器(更新中)
  • No resource identifier found for attribute,RxJava之zip操作符
  • C# - 为值类型重定义相等性
  • Mac 上flink的安装与启动
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 智能情侣枕Pillow Talk,倾听彼此的心跳
  • !!java web学习笔记(一到五)
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #mysql 8.0 踩坑日记
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (全注解开发)学习Spring-MVC的第三天
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .Net 6.0 处理跨域的方式
  • .net core 控制台应用程序读取配置文件app.config
  • .NET Core中Emit的使用
  • .net 托管代码与非托管代码
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)