当前位置:   article > 正文

Elasticsearch 索引和文档的管理(五)_new indexsettings.builder().autoexpandreplicas

new indexsettings.builder().autoexpandreplicas

今天分析Elasticsearch 索引和文档的管理:

es 中,索引和文档是 REST 接口操作的最基本资源,所以对索引和文档的 管理也是我们必须要知道的。索引一般是以索引名称出现在 REST 请求操作的资 源路径上,而文档是以文档 ID 为标识出现在资源路径上。映射类型 _doc 也可以 认为是一种资源,但在 es7 中废除了映射类型,所以可以 _doc 也视为一种接口。
索引的管理
在前面的学习中我们已经知道,GET 用来获取资源,PUT 用来更新资源, DELETE 用来删除资源。所以对索引,GET 用来查看索引,PUT 用来创建索引,DELETE 用来删除索引,还有一个 HEAD 请求,用来检验索引是否存在。除此之外,对索 引的管理还有
列出所有索引
GET /_cat/indices?v
关闭索引和打开
POST /open-soft/_close
除了删除索引,还可以选择关闭它们。如果关闭了一个索引 , 就无法通过 Elasticsearch 来读取和写人其中的数据,直到再次打开它。 在现实世界中,最好永久地保存应用日志,以防要查看很久之前的信息。另 一方面,在 Elasticsearch 中存放大量数据需要增加资源。对于这种使用案例,关 闭旧的索引非常有意义。你可能并不需要那些数据,但是也不想删除它们。 一旦索引被关闭,它在 Elasticsearch 内存中唯 - 的痕迹是其元数据,如名字 以及分片的位置。如果有足够的磁盘空间,而且也不确定是否需要在那个数据中 再次搜索,关闭索引要比删除索引更好。关闭它们会让你非常安心,永远可以重 新打开被关闭的索引,然后在其中再次搜索。 重新打开 POST /open-soft/_open
配置索引
通过 settings 参数配置索引,索引的所有配置项都以“ index ”开头。索引的 管理分为静态设置和动态设置两种。
静态设置
只能在索引创建时或在状态为 closed index (闭合索引)上设置,主要配置 索引主分片、压缩编码、路由等相关信息
index.number_of_shards 主分片数,默认为 5. 只能在创建索引时设置,不能 修改index.shard.check_on_startup
是否应在索引打开前检查分片是否损坏,当 检查到分片损坏将禁止分片被打开。false :默认值; checksum :检查物理损坏;
true: 检查物理和逻辑损坏,这将消耗大量内存和 CPU fix :检查物理和逻辑损坏。 有损坏的分片将被集群自动删除,这可能导致数据丢失 index.routing_partition_size 自定义路由值可以转发的目的分片数。默认为 1 , 只能在索引创建时设置。此值必须小于 index.number_of_shards index.codec 默认使用 LZ4 压缩方式存储数据,也可以设置为 best_compression,它使用 DEFLATE 方式以牺牲字段存储性能为代价来获得更高 的压缩比例。
如:put test1
{
  "settings": {
    "index.number_of_shards": 3,
    "index.codec": "best_compression"
  }
}
动态设置
通过接口“ _settings ”进行,同时查询配置也通过这个接口进行,比如:
get _settings
get /open-soft/_settings
get /open-soft,test1/_settings
配置索引则通过:
put test1/_settings
{
"refresh_interval":"2s"
}
常用的配置参数如下: index.number_of_replicas
每个主分片的副本数。默认为 1
index.auto_expand_replicas 基于可用节点的数量自动分配副本数量 , 默认为
false (即禁用此功能)
index.refresh_interval
执行刷新操作的频率。默认为 1s 。可以设置为 -1 以 禁用刷新。
index.max_result_window 用于索引搜索的 from+size 的最大值。默认为 10000
index.blocks.read_only 设置为 true 使索引和索引元数据为只读, false 为 允许写入和元数据更改。
index.blocks.read
设置为 true 可禁用对索引的读取操作
index.blocks.write 设置为 true 可禁用对索引的写入操作
index.blocks.metadata 设置为 true 可禁用索引元数据的读取和写入
index.max_refresh_listeners 索引的每个分片上可用的最大刷新侦听器数
index.max_docvalue_fields_search
一次查询最多包含开启 doc_values 字段 的个数,默认为 100
index.max_script_fields 查询中允许的最大 script_fields 数量。默认为 32
index.max_terms_count 可以在 terms 查询中使用的术语的最大数量。默认 为 65536
index.routing.allocation.enable 控制索引分片分配。 All( 所有分片 ) primaries (主分片)、new_primaries (新创建分片)、 none (不分片)
index.routing.rebalance.enable 索引的分片重新平衡机制。 all primaries 、 replicas、 none
index.gc_deletes
文档删除后(删除后版本号)还可以存活的周期,默认 为 60s
index.max_regex_length 用于正在表达式查询 (regex query) 正在表达式长度, 默认为 1000
配置映射
通过 _mapping 接口进行,在我们前面的章节中,已经展示过了。
get /open-soft/_mapping
或者只看某个字段的属性:
get /open-soft/_mapping/field/lang
修改映射,当然就是通过 put 或者 post 方法了。但是要注意,已经存在的 映射只能添加字段或者字段的多类型。但是字段创建后就不能删除,大多数参数 也不能修改,可以改的是 ignore_above。所以设计索引时要做好规划,至少初始 时的必要字段要规划好。
文档的管理
增加文档
增加文档,我们在前面的章节已经知道了,比如:
put /open-soft/_doc/1
{
"name": "Apache Hadoop",
"lang": "Java",
"corp": "Apache",
"stars":200
}
如果增加文档时,在 Elasticsearch 中如果有相同 ID 的文档存在,则更新此文 档,比如执行
put /open-soft/_doc/1
{
"name": "Apache Hadoop2",
"lang": "Java8",
"corp": "Apache",
"stars":300
}
则会发现已有文档的内容被更新了。
文档的 id
当创建文档的时候,如果不指定 ID ,系统会自动创建 ID 。自动生成的 ID 是 一个不会重复的随机数。使用 GUID 算法,可以保证在分布式环境下,不同节点 同一时间创建的_id 一定是不冲突的。比如:
post /open-soft/_doc
{
"message":"Hello"
}
 
 
查询文档
get /open-soft/_doc/1
更新文档
前面我们用 put 方法更新了已经存在的文档,但是可以看见他是整体更新文 档,如果我们要更新文档中的某个字段怎么办?需要使用_update 接口。
post /open-soft/_update/1/
{
  "doc": {
    "year": 2016
  }
}
如果文档中存在 year 字段,更新 year 字段的值,如果不存在 year 字段,则 会新增 year 字段,并将值设为 2016
update 接口在文档不存在时提示错误,如果希望在文档不存在时创建文档, 则可以在请求中添加 upsert 参数或 doc_as_upsert 参数,例如 :
POST /open-soft/_update/5
{
  "doc": {
    "year": "2020"
  },
  "upsert": {
    "name": "Enjoyedu Framework",
    "corp": "enjoyedu "
  }
}
或: POST /open-soft/_update/6
{
  "doc": {
    "year": "2020"
  },
  "doc_as_upsert": true
}
upsert 参数定义了创建新文档使用的文档内容,而 doc_as_upsert 参数的含 义是直接使用 doc 参数中的内容作为创建文档时使用的文档内容。
删除文档
delete /open-soft/_doc/1
 
今天分析到此结束,下一篇分析数据检索和分析,敬请期待。
 
 
 
 
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/858920
推荐阅读
相关标签
  

闽ICP备14008679号