Elasticsearch
文章平均质量分 93
Elasticsearch学习及总结
板凳坐着晒太阳
这个作者很懒,什么都没留下…
展开
-
【Elasticsearch查询】查询环境
因此,在执行请求时,需要从所有shard中获得0到10的结果,对它们进行排序,然后返回结果,如果想确保结果正确的话。每个分片执行搜索并生成一个排序后的结果列表,该结果列表位于该分片的本地。所有其他选项都不能完全保证在搜索中使用任何特定的分片副本,对于一个变化的索引,这可能意味着重复的搜索可能会产生不同的结果,如果它们是在处于不同刷新状态的不同分片副本上执行的话。这个参数应该用来防止单个请求超载集群(例如,默认的请求会击中集群中的所有索引,如果每个节点的分片数很高,可能会导致分片请求拒绝)。原创 2024-02-29 20:23:10 · 781 阅读 · 0 评论 -
【Elasticsearch管理】网络配置
如果在同一个主机上运行多个Elasticsearch实例,但希望Elasticsearch调整其线程池的大小,就像它只有一部分CPU一样,应该覆盖设置为所需的部分的处理器(例如,如果在一台16核的机器上运行两个Elasticsearch实例,请将处理器设置为8)。请注意,这是一个专家级的用例,其中涉及的内容远不止设置处理器设置,还有其他需要考虑的事项,如更改垃圾收集器线程的数量、将进程固定到内核等。fixed:fixed持有固定大小的线程来处理请求,使用一个队列(可选绑定)处理没有线程为其服务的挂起请求。原创 2024-02-29 17:31:43 · 1180 阅读 · 1 评论 -
【Elasticsearch索引】Rollover滚动、Shrink收缩、Split拆分索引
新索引的设置、映射和别名取自任何匹配的索引模板。另外,您可以在请求的主体中指定设置、映射和别名,就像create index一样。请求中指定的值将覆盖在匹配索引模板中设置的任何值。例如,下面的滚动请求将覆盖索引。},"index.number_of_shards": 1, //目标索引中的分片数。这必须是源索引中分片数量的一个因素。"index.codec": "best_compression" //最佳压缩仅在对索引进行新写操作时生效,例如将分片强制合并到单个段时。},原创 2024-02-28 17:32:11 · 1152 阅读 · 0 评论 -
【Elasticsearch索引】ReIndex重建索引
就像update_by_query一样,reindex获取源索引的快照,但是它的目标必须是一个不同的索引,这样就不太可能出现版本冲突。比修改值大的requests_per_second将立即生效,而修改值小的requests_per_second将在完成当前批处理后生效。除了像pretty这样的标准参数外,Reindex还支持refresh、wait_for_completion、wait_for_active_shards、timeout、scroll和requests_per_second。原创 2022-10-08 18:57:32 · 5832 阅读 · 0 评论 -
【Elasticsearch索引】Recovery恢复索引
因为Lucene提交的开销太大,无法在每个单独的更改上执行,所以每个分片副本都有一个与之关联的事务日志,称为translog。对Lucene的更改只会在Lucene提交期间持久化到磁盘上,这是一个相对昂贵的操作,因此不能在每次索引或删除操作之后执行。更准确地说,如果设置为request, Elasticsearch只会在跨日志在主服务器和每个分配的副本上成功地同步并提交之后,向客户端报告索引、删除、更新或批量请求的成功。recovery命令是索引分片恢复的视图,包括正在进行的和已经完成的。原创 2024-02-28 17:15:21 · 1294 阅读 · 0 评论 -
【Elasticsearch索引】索引基础操作
如果在已经有index.max_refresh_listeners(默认为1000)个请求中进入refresh= wait_for请求,则该请求将等待对该分片的刷新,则该请求的行为就好像刷新设置为true一样:它将强制刷新。这种快速的同步id比较(如果存在)在恢复或重启期间使用,以跳过该过程的第一个和最昂贵的阶段(有助于索引恢复速度的提高)。段是存储索引数据的索引中的内部存储元素,并且是不可变的。合并在不同的线程中运行,当达到最大的线程数时,进一步的合并将等待,直到有一个合并线程可用。原创 2024-02-27 11:37:10 · 847 阅读 · 0 评论 -
【Elasticsearch管理】缓存机制
默认情况下,请求缓存将仅缓存size = 0时的搜索请求结果,因此将不缓存hits,但将缓存hits.total,aggregations, 和suggestions。查询缓存负责缓存查询的结果。如果你的查询使用的脚本,其结果是不确定的(例如,它使用一个随机函数或引用当前时间),你应该设置request_cache标志为false,以禁用该请求的缓存。当针对一个索引或多个索引运行搜索请求时,每个涉及的分片都在本地执行搜索,并将其本地结果返回到协调节点,该节点将这些分片级结果合并为一个“全局”结果集。原创 2024-02-26 17:46:21 · 919 阅读 · 0 评论 -
【Elasticsearch管理】节点角色及发现机制
但是对于生产环境下的集群是不行的,需要将每台es进程绑定在一个非回环的ip地址上,才能跟其他节点进行通信,同时需要使用集群发现机制来跟其他节点上的es node进行通信。在启动时,或者在选择新的主节点时,Elasticsearch尝试连接到它列表中的每个种子节点,并与它们进行心跳连接,以查找其他节点并构建集群的完整图景。为了确保您的主节点是稳定的,并且不会受到压力,在较大的集群中,设置专用的主节点和专用数据节点是个好主意。如果你在运行一个Elasticsearch的节点,那么你有一个节点的集群。原创 2024-02-26 17:43:13 · 1538 阅读 · 0 评论 -
【Elasticsearch查询】深度查询
因此,在遍历过程中,排序顺序可能会根据索引的更新和删除而改变。如果切片的数量大于分片的数量,切片过滤器在第一次调用时非常慢,它的复杂度为O(N),内存消耗等于每切片N位,其中N是切片中的文档总数。在几个调用之后,应该缓存过滤器,随后的调用应该更快,但是您应该限制并行执行的切片查询的数量,以避免内存爆炸。由于切片的最大数量设置为2,所以两个请求的结果的并集等效于不切片的滚动查询的结果。滚动查询不是为了满足实时的用户请求,而是为了处理大量的数据,例如,为了将一个索引的内容重新索引到一个具有不同配置的新索引中。原创 2024-02-23 20:16:11 · 1120 阅读 · 0 评论 -
【Elasticsearch查询】精确查询
必须匹配的词的数量在每个文档中都是不同的,或者由最小应匹配字段控制,或者在每个文档中计算最小应匹配脚本。全文查询将在执行之前对查询字符串进行分词,而词项级查询将对存储在反向索引中的精确词项进行操作,并且执行前对只对具有normalizer属性的keyword字段词项进行规范化。与bool查询中的“NOT”子句不同,它仍然选择包含不需要的词语的文档,但会降低它们的总体得分。复合查询封装了其他复合查询或子查询,可以组合它们的结果和分数,改变它们的行为,或者从查询切换到过滤上下文。)和多字符通配符(*)原创 2024-02-23 19:43:29 · 1211 阅读 · 0 评论 -
【Elasticsearch管理】备份恢复
如果唯一需要的信息是存储库中的快照名称/ uuid以及每个快照中的索引,则可以将可选的布尔参数verbose设置为false,以对存储库中的快照执行更高效且更具成本效益的检索。由于快照是增量快照,因此仅复制存储库中尚未存在的Lucene段,因此stats对象包含快照引用的所有文件的总计部分,以及实际需要存储的那些文件的增量部分。索引快照进程是递增的。快照格式可以在主要版本之间更改,因此,如果在不同版本上的集群试图编写相同的存储库,那么由一个版本编写的快照可能对另一个版本不可见,存储库可能会被破坏。原创 2024-02-22 16:36:54 · 1051 阅读 · 1 评论 -
【Elasticsearch监控】集群查看
这个API返回基本的索引指标(分片数、存储大小、内存使用情况)和关于当前集群节点的信息(数量、角色、操作系统、jvm版本、内存使用情况、cpu和已安装的插件)。例如,任务管理、节点状态和节点信息都可以报告一组经过筛选的节点的结果,而不是所有节点的结果。响应提供集群名称、集群状态的总压缩大小(序列化以便在网络上传输时的大小)和集群状态本身,可以对其进行筛选,以只检索感兴趣的部分。返回的统计信息是在索引级别聚合的,包含初选和总聚合,其中初选仅是主分片的值,而total是主分片和复制分片的累计值。原创 2024-02-22 14:39:57 · 1472 阅读 · 1 评论 -
【Elasticsearch开发】配置约定
如果指定open,则通配符表达式将仅展开为打开的索引,如果指定closed,则通配符表达式将仅展开为关闭的索引。如果没有指定,那么通配符扩展将被禁用,如果指定了all,通配符表达式将扩展到所有索引(这等同于指定open,closed)。例如,如果指定了通配符表达式foo*,并且没有以foo开头的可用索引,那么根据这个设置,请求将失败。对于多搜索、多获取和批量请求,用户可以选择在URL中指定索引,并在请求体中的每个请求上指定索引。控制是否忽略任何指定的索引不可用,包括不存在的索引或关闭的索引。原创 2024-02-20 19:55:34 · 804 阅读 · 0 评论 -
【Elasticsearch开发】文档操作
Elasticsearch中的每个索引都被划分为分片,每个分片可以有多个副本。这些副本称为复制组,在添加或删除文档时必须保持同步。如果我们不这样做,从一个副本读取将导致非常不同的结果从另一个。保持分片副本同步并从其中读取数据的过程称为数据复制模型。Elasticsearch的数据复制模型是基于主备模型的,并且在Microsoft Research的PacificA论文中进行了很好的描述。该模型基于从复制组中获得一个副本充当主分片。其他副本称为副本分片。主分片用作所有索引操作的主入口点。原创 2023-02-28 19:21:04 · 2143 阅读 · 0 评论 -
【Elasticsearch管理】安装运行及注意事项
Elasticsearch安装运行原创 2022-09-18 22:47:15 · 1280 阅读 · 0 评论 -
【Elasticsearch开发】Ingest Pipelines
管道是一系列处理器的定义,它们按照声明的顺序执行。description是一个特殊字段,用于存储有关管道所做工作的有用描述。processors参数定义了要按顺序执行的处理器列表。原创 2024-02-21 17:29:42 · 677 阅读 · 1 评论 -
【Elasticsearch管理】分片分配
用户定义的元数据可以使用集群设置API存储和检索。这可以用于存储关于集群的不经常更改的任意数据,而不需要创建索引来存储这些数据。此数据可以使用任何前缀为cluster.metadata的键存储。用户定义的集群元数据不用于存储敏感或机密信息。任何存储在用户定义的集群元数据中的信息都可以被任何访问集群Get Settings API的人看到,并记录在Elasticsearch日志中。原创 2024-02-20 20:05:26 · 1448 阅读 · 0 评论