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

04.Elasticsearch应用(四)

Elasticsearch应用(四)

1.什么是索引

  • 索引是文档的容器,是一类文档的结合
  • 索引是一个逻辑命名空间,它映射到一个或多个主分片,并且可以具有零个或多个副本分片
  • 索引中数据分散在Shard上
  • 索引的Mapping定义文档字段的类型
  • 索引的Setting定义不同的数据分布

2.索引模板(Index Template)

介绍

  • 帮助你设定索引的Mappings和Settings
  • 按照一定的规则,自动匹配到新创建索引上
  • 模板仅在一个索引被新创建时,才会产生作用
  • 修改模板不会影响已经创建的索引
  • 你可以设定多个索引模板,这些设置会被“merge”在一起
  • 你可以指定“order”的数值,控制“merging”的过程

工作方式(当索引被创建时)

  • 应用ES默认的settings与mappings
  • 应用order数值低的index Template中的设定
  • 应用高的index Template中的设定之前的设定会被覆盖
  • 用户所指定的settings和mappings,并覆盖之前模板中的设定

请求路径

# 创建模板,template_default 是这个名字的话就是默认的模板
PUT _template/[index-template]
{"index_patterns": ["test*"],"order": 1,"settings": {"number_of_shards": 1,"number_of_replicas": 2},"mappings": {"date_detection": false,"numeric_detection": true}
}
# 查看template信息
GET /_template/<index-template>
GET /_template/tem*

3.索引别名(aliases)

介绍

  • 索引别名是用于引用一个现有索引的辅助名称
  • 查询,插入,修改 文档都可以使用别名

请求格式

POST /_aliases
{"actions": [{"add": {"index": "<index>","alias": "别名名称"}}]
}POST /_aliases
{"actions": [{"add": {"index": "<index>","alias": "别名名称","filter": {"range": {"rating": {"gte": 4}}}}}]
}
PUT /<index>
{"mappings": {"properties": {"<field1>": {"type": "字段类型"},"<field2>": {"type": "alias","path": "目标字段的路径(<field1>)" }}}
}

注意

  • path是指目标字段的路径。请注意,这必须是完整路径,包括任何父对象(例如object1.object2.field)
  • 不支持仅写入字段别名
  • 不支持在插入请求或更新请求中使用别名
  • 不支持多字段
  • 指定查找路径的查询部分不能通过其别名引用字段

4.索引API

获取索引设置

请求路径
GET /[索引名]/_settingsGET /[索引名]/_settings/[设置项setting]
请求参数:setting
  • 可选
  • 字符串
  • 逗号分隔列表或通配符表达式
请求示例
GET /twitter,kimchy/_settingsGET /_all/_settingsGET /log_2013_*/_settings

关闭索引

请求路径
POST /[索引名]/_close
请求参数:索引名
  • 可选
  • 字符串
  • 索引名称的逗号分隔列表或通配符表达式

打开索引

请求路径
POST /[索引名]/_open
请求参数:索引名
  • 可选
  • 字符串
  • 索引名称的逗号分隔列表或通配符表达式

5.创建索引的示例

POST /test
{"settings":{"index":{// 索引默认分词器"analysis.analyzer.default.type":"ik_max_word"}// 自定义分词器"analysis":{"analyzer":{"ik_pinyin":{  // 自定义分词器的名称"tokenizer":"ik_max_word", // 基本分词器"filter":"pinyin_filter" // 自定义的分词器}},"filter":{ // 自定义tokenizer filter"pinyin_filter":{ // 过滤器类型"type":"pinyin",  // 这个过滤器的类型"keep_separate_first_letter":false, // 是否分词每个字的首字母"keep_full_pinyin":true, // 是否分词全拼"keep_original":true // 是否保留原始输入"remove_duplicated_term":true // 是否删除重复项"keep_joined_full_pinyin":true,"limit_first_letter_length":16,"none_chinese_pinyin_tokenize":false}}}  },"mappings":{"dynamic":"strict", // 动态映射严格模式"properties":{"name":{ // 字段名称"type":"text", // 字段类型"sotre":true, // 是否单独存储"index":true, // 是否创建倒排索引"analyzer":"ik_max_word", // 创建倒排索引时候的分词器"search_analyzer":"ik_pinyin", // 搜索时候的分词器"dynamic":true // 动态映射设置}}}}
http://www.lryc.cn/news/288729.html

相关文章:

  • Python之数据可视化(地图)
  • etcd技术解析:构建高可用分布式系统的利器
  • Pillow图像处理:从零开始的奇妙之旅
  • 设计一个LRU(最近最少使用)缓存
  • shell 循环语句
  • C++(1) 命名空间
  • 【机组】单元模块实验的综合调试与驻机键盘和液晶显示器的使用方式
  • React中实现虚拟加载滚动
  • vue中的Mutations
  • C#用 DateAndTime.DateAdd方法和DateTime.Add(TimeSpan) 方法分别添加一段时间间隔
  • 四、Kotlin 表达式
  • Web开发4:单元测试
  • Ubuntu 16 让ufw防火墙控制docker容器中所有端口
  • <蓝桥杯软件赛>零基础备赛20周--第18周--动态规划初步
  • vb如何获取鼠标形状的特征码
  • chroot: failed to run command ‘/bin/bash’: No such file or directory
  • 蓝桥杯备战——2.矩阵键盘
  • Docker部署思维导图工具SimpleMindMap并实现公网远程访问
  • 机器学习实验2——线性回归求解加州房价问题
  • 宝塔+nextcloud+docker+Onlyoffice 全开启https
  • 呼吸机电机控制主控MCU方案
  • gitlab备份-迁移-升级方案9.2.7升级到15版本最佳实践
  • redis面试题合集-基础
  • (Unity)C# 中的字符串格式化
  • 【项目日记(五)】第二层: 中心缓存的具体实现(上)
  • 使用PSIM软件生成DSP28335流水灯程序
  • 【iOS ARKit】人脸检测追踪基础
  • ES的一些名称和概念总结
  • Javaweb之SpringBootWeb案例之阿里云OSS服务集成的详细解析
  • 【GitHub项目推荐--不错的 Go 学习项目】【转载】