一、mappings参数
参数 | 解释 | 默认 |
---|---|---|
analyzer | 分词器 | |
search_analyser | 搜索词分词器 | |
doc_values | 正排索引选项 | |
enabled | 是否创建倒排索引 | |
index | 未是否对创建对当前字段创建索引,如果不创建索引,该字段不会通过索引被搜索到,但是仍然会在source元数据中展示 | true |
fielddata | 搜索时正排索引选项 | |
fields | 字段 | |
properties | 字段属性 | |
format | 常用语时间类型字段的格式化 | |
ignore_above | 字段保留的长度 | |
meta | 金针菇 | |
normalizer | processon 07分词器图 | |
norms | 计算评分用的,如果你确定当前字段将来不需要计算评分,设置false可以节省大量的磁盘空间,有助于提升性能。常见的比如filter和agg字段,都可以设为关闭。 | true |
null_value | 为null值设置默认值 | |
similarity | 相关度评分算法 BM25:概率相关性模型(5.0之后(包括)默认算法) ii.classic:空间向量模型(向量空间模型),TF-IDF(5.0之前) iii.boolean: |
|
store | 开辟另一块存储空间,可以节省带宽 注意:_sourse:设置为false,则不存储元数据,可以节省磁盘,并且不影响搜索。但是禁用_source必须三思而后行: 1.update,update_by_query和reindex不可用。 2.高亮失效 3.reindex失效,原本可以修改的mapping部分参数将无法修改,并且无法升级索引 4.无法查看元数据和聚合搜索 5.影响索引的容灾能力。 如果是出于节省磁盘空间的目的,可以考虑压缩元数据(LZ4压缩)。但是会损失性能 |
二、settings参数
参数 | 说明 | 默认值 | 是否可修改 mapping |
---|---|---|---|
index.number_of_shards | 主分片个数,每个索引分片数量上限是1024,通过以下方式修改。 export ES_JAVA_OPTS=”-Des.index.max_number_of_shards=128” |
7.0以前默认是5 7.x默认是1 |
false |
number_of_replicas | 为每个主分片分配的副本个数 | 1 | true |
index.shard.check_on_startup | 检查分片是否损坏(不要轻易修改) false:不检查(默认) b)checksum:检查物理损坏 c)true:检查物理损坏和逻辑损坏(消耗大量CPU和内存资源)。 |
false | false |
index.codec | best_compression(压缩元数据,会降低性能) | false | |
ndex.auto_expand_replicas | 1根据集群中数据节点的数量自动扩展副本的数量。设置为以短划线分隔的上下限(例如0-5)或all 用于上限(例如0-all)。默认为false(即禁用)。 | false | true |
index.max_result_window | 最大值页容量 | 10000 | true |
index.blocks.read_only | 设置为true使索引和元数据只读 | false | false |
index.blocks.read | 是否禁止索引读操作 | false | false |
index.blocks.write | 是否禁止写索引 | false | false |
index.blocks.metadata | 是否禁用元数据读写 | false | false |
index.max_terms_count | 查询语句最大term数 | false | |
index.max_terms_count | 查询语句最大term数 | ||
index.max_regex_length | 正则最大长度 | 1000 | false |
index.routing.allocation.enable | 控制索引的分片分配 all (默认):允许为所有分片分配分片。 primaries :仅允许为主要分片分配分片。 new_primaries :仅允许为新创建的主分片分配分片。 none :不允许分片分配。 |
all | false |
index.routing.rebalance.enable | 分片自动均衡 all (默认):允许所有分片重新平衡。 primaries :仅允许对主要分片进行分片重新平衡。 replicas :仅允许对副本分片进行分片重新平衡。 none :不允许分片重新平衡 |
all | false |
三、_rollover 和 _index_template
#插入person数据
PUT _bulk
{"index":{"_index":"person","_type":"_doc","_id":"1"}}
{ "name":"王帆" }
#使用别名person-template指向person
#person-template ==> person
POST _aliases
{
"actions": [
{
"add": {
"index": "person",
"alias": "person-template"
}
}
]
}
#创建_rollover规则
#person-template ==(满足条件)==> person-000001
POST person-template/_rollover/person-000001
{
"conditions": {
"max_age": "1d", //一天
"max_docs": 2, //最大doc数量
"max_size": "1gb" //最大索引磁盘空间
}
}
#向person-template下插入满2条数据
PUT _bulk
{"index":{"_index":"person-template","_type":"_doc","_id":"1"}}
{ "name":"王帆" }
{"index":{"_index":"person-template","_type":"_doc","_id":"2"}}
{ "name":"王帆" }
#刷新
POST person-template/_refresh
GET person-template/_count
#再次创建_rollover规则
#person-template ==(满足条件)==> person-000002
POST person-template/_rollover
{
"conditions": {
"max_age": "1d", //一天
"max_docs": 2, //最大doc数量
"max_size": "1gb" //最大索引磁盘空间
}
}
#再次向person-template下插入满2条数据
PUT _bulk
{"index":{"_index":"person-template","_type":"_doc","_id":"1"}}
{ "name":"王帆" }
{"index":{"_index":"person-template","_type":"_doc","_id":"2"}}
{ "name":"王帆" }
#再次创建_rollover规则
#person-template ==(满足条件)==> person-000003
POST person-template/_rollover
{
"conditions": {
"max_age": "1d", //一天
"max_docs": 2, //最大doc数量
"max_size": "1gb" //最大索引磁盘空间
}
}
#刷新
POST person-template/_refresh
GET person-template/_count
GET person-000002/_count
创建 _index_template
#创建
POST _index_template/{template名字}
{
"index_patterns": [
"person-*"
],
"priority": 1,
"template": {
"mappings": {
"properties": {
"name":{
"type": "text",
"analyzer": "ik_max_word",
"meta":{
"这是一个自定义文本":"证明我来自于template"
}
}
}
},
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0
}
}
}
#删除
DELETE _index_template/{template名字}
#查询
GET _index_template/{template名字}