Elasticsearch搜索调优权威指南 (2/3)


本文首发于 vivo互联网技术 微信公众号
英文原文:https://qbox.io/blog/elasticsearch-search-tuning-part-2
作者:Adam Vanderbush
译者:杨振涛目录Elasticsearch搜索调优权威指南,是QBOX在其博客上发布的系列文章之一,本文是该系列的第二篇,主要介绍了索引预处理、mapping建立、避免脚本的使用、索引段合并等搜索性能相关的调优方法。本文是Elasticsearch搜索调优系列文章3篇中的第2篇,第1篇参考这里(点击)。本系列教程旨在更进一步讨论针对Elasticsearch 5.0及以上版本的搜索调优技术、策略及建议。为了优化数据的索引方式,应当在查询中预置一些模式。比如,如果所有文档都有一个叫 price 的价格字段,并且大部分查询在一个固定范围列表上执行 range 聚合,那么就可以通过预索引范围到索引中并使用一个 terms 聚合,来加速该聚合。比如有如下文档:以及如下搜索请求:然后就可以在索引阶段增加一个 price_range 字段,该字段应该映射为一个关键字:接下来搜索请求就能聚合这个新的字段,而不是在price字段上执行一个范围聚合。事实上,一些数值型的数据,并不意味着总是要被映射为一个数值型字段。典型的,那些存储为诸如ISBN之类的标识符,或者任何标识另一个数据库中记录的数字的字段,可能映射为关键字比映射为一个integerlong类型更好。关键字类型用于索引结构化内容,比如email地址、主机名称、状态码、邮政编码或标签。典型地用于过滤(比如查找所有已发布的博客文章)、排序以及聚合。关键字字段只可通过其精确值搜索得到。如果需要索引全文内容比如email 香港云主机内容或产品描述,可能就要使用一个文本字段。下面是一个关键字字段映射的示例:从2.x版本导入的索引是不支持关键字的;相反,它们会试图把keyword类型降级为string类型。这支持合并新的映射和旧的映射。长期存在的索引,必须在升级到6.x版本前重建,但是映射降级提供了按自己的计划实施重建的机会。一般来说要尽量避免使用脚本;如果必须要使用,优先选择Painless和表达式引擎。Painless是一门简单安全的脚本语言,专门为在Elasticsearch中使用而设计,是Elasticsearch的默认脚本语言,可安全地用于内联和存储脚本。关于Painless语法和语言特性的更详细描述,请参考Painless语言规范。请参考 “Painless Scripting in Elasticsearch” 更深入地了解Painless脚本语言指南。Lucene表达式会把一个javascript表达式编译为字节码,设计用于高性能自定义评级和排序函数,并支持inline和默认的存储脚本。表达式相对于自定义Lucene代码而言有着更好的性能表现;其性能相对其他脚本引擎有更低的单文档成本:表达式更加“领先”。这就允许非常快的执行,尤其是比自己写的本地脚本快很多。表达式支持一个ja**vascript**语法子集:一个单独的表达式。参见表达式模块的文档,了解支持的操作符和函数。表达式脚本中可访问的变量有:文档字段,比如doc[‘myfield’].value字段所支持的变量和方法,比如doc[‘myfield’].empty传递到脚本里的参数,比如mymodifier表达式脚本可以用于script_score、script_fields、排序脚本以及数值型聚合脚本,只要简单地设置参数到表达式中即可。只读索引在合并为单一的段后将会非常受益。典型的情况是基于时间的索引:只有当前时间窗的索引会成为新文档,同时旧索引成为只读。强制合并API支持通过API强制合并一个或更多的索引。合并与每个分片中Lucene索引的段数量有关。强制合并操作支持通过合并来减少段数量。该调用在合并完成之前将会处于阻塞状态。如果http连接断掉,请求将在后台继续,在前一个强制合并完成之前,所有新请求将会阻塞。强制合并API接受下列请求参数:max_num_segments-待合并的段数量。要完全合并索引,可设置为 1 。默认会简单检查一个合并是否需要执行,如果是,就会执行。only_expunge_deletes-合并流程是否仅仅擦除包含删除的段。在Lucene中,一个文档并不会从一个段直接删除,只是标记为删除。在一个段合并的过程中,一个新的段可能会被创建,这个新的段并不包含那些删除。这个标记参数支持只合并有删除的段,且默认为false。注意,这并不会重写阈值index.merge.policy.expunge_deletes_allowed。

相关推荐: 电脑一直在启动修复界面如何解决

这篇文章主要介绍“电脑一直在启动修复界面如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“电脑一直在启动修复界面如何解决”文章能帮助大家解 香港云主机决问题。1.鼠标右键点击win7桌面计算机图标并打开属性界面,随…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 07/24 20:39
Next 07/24 20:39

相关推荐