ES 索引入门 liangdong@smzdm.com
类比MYSQL
存储关系
禁止自动创建index 修改config/elasticsearch.yml: action.auto_create_index: false
创建index number_of_shards:主分片数(无法后续修改) number_of_replicas:副本数(最小0,可以后续 修改)
查看index
删除index
创建type
查看type
删除type 不支持
创建document
搜索document
index与lucene 你眼里的document ES眼里的document lucene眼里的document
再建1个type
在lucene眼里(all types in one) my_index包含2个type 在ES的眼里 在lucene眼里(all types in one) 类型必须一致
string由text和keyword取代,前者默认分词,后者默认不分词,两者默认都索引 字段类型 新版本中: string由text和keyword取代,前者默认分词,后者默认不分词,两者默认都索引
字段索引 概念-1: index=true 字段被索引 index=false 字段不索引 概念-2: 索引字段 - 可以搜索 不索引字段 - 无法搜索 概念-3: type=string 字符串先分词,再索引 type=keyword 字符串不分词,整体索引
index倒排原理
自定义分析器 char_filter:字符过滤 tokenizer:分词 filter:词过滤 自定义 - 字符过滤 - 叫做&_to_end type=mapping是内置char_filter,支持mappings传参 自定义 - 词过滤器 - 叫做my_stopwords type=stopwords是内置filter,支持stopwords传参 自定义 - 分析器 - 叫做my_analyzer type=custom表示DIY组装,非内置分析器 char_filter:使用内置html_strip和自定义&_to_end tokenizer:使用内置standard分词 filter:使用内置lowercase与自定义my_stopwords char_filter:字符过滤 tokenizer:分词 filter:词过滤 analyzer:分析器(char_filter+tokenizer+filter)
验证my_analyzer
字段应用my_analyzer
一些次要的杂项
当插入document包含了type未定义的字段时, 动态映射 用途: 当插入document包含了type未定义的字段时, 是否修改type mapping。 可选值: true,false,strict
根据插入document带入的新字段名字,定义字段的索引方式 自定义 - 动态映射 用途: 根据插入document带入的新字段名字,定义字段的索引方式
插入document到未定义的type时,复制_default_的mapping定义 缺省映射 用途: 插入document到未定义的type时,复制_default_的mapping定义
不停机重建index 总是使用索引别名!
祝玩的愉快