ElasticSearch的内置字段以及类型
内置字段:_uid,_id,_type,_source,_all,_analyzer,_boost,_parent,_routing,_index,_size,_timestamp,_ttl
字段类型:string,integer,long,float,double,boolean,null,date,binary
ElasticSearch使用乐观锁进行版本控制
_version自增长,修改数据后,_version会自动加1,
为了保持_version与外部版本控制的数值一致,使用version_type=external,检查数据当前的version值是否小于请求中的version值。
Mapping映射
可以添加的相关属性有:
属性 | 描述 | 适用类型 |
store | 是否存储该字段,yes或no,默认值为no | all |
index | analyzed,not_analyzed或no analyzed表示索引且分析,默认值 not_analyzed表示索引但不分析 no表示不索引这个字段,这样就搜不到 | string 其它类型只能设为 no或not_analyzed |
null_value | 如果字段是空值,通过它可以设置一个默认值,比如“null_value”:"NA" | all |
boost | 设置字段的权值,默认值是1.0 | all |
index_analyzer | 设置一个索引时用的分析器 | all |
search_analyzer | 设置一个搜索时用的分析器 | all |
analyzer | 设置索引和搜索时用的分析器,elasticsearch默认使用的是standard分析器,还可以使用 whitespace、simple和english这三种内置的分析器 | all |
include_in_all | 默认下elasticsearch会为每一个文档定义一个特殊的域_all,它的作用就是每一个字段都 将被搜索到,如果你不想让某个字段被搜索到,那么就在这个字段里定义一个 include_in_all=false;默认值是true | all |
index_name | 字段的名称,默认是字段本身的名字 | all |
norms | norms的作用是根据各种规范化因素去计算权值,这样方便查询 | all |
动态映射
文档中碰到一个以前没见过的字段时,动态映射可以自动决定该字段的类型,并对该字段添加映射
通过dynamic属性进行控制
dynamic:true 默认值,动态添加字段
dynamic:false 忽略新字段
dynamic:strict 碰到陌生字段,抛出异常