英文原文:https://qbox。io/博客/elasticsearch-search-tuning-5-0-ultimate-guide亚当Vanderbush
引用>
译者:杨振涛<强>目录强>
<李>文档建模李> <李>全局序列号和延迟李> <李>多代关系李> <李>为文件系统缓存分配内存李>
Elasticsearch搜索调优权威指南,是QBOX在其博客上发布的系列文章之一,本文是该系列的第一篇,主要从文档建模,内存分配,文件系统缓存,GC和硬件等方面介绍了优化查询性能的一些经验。
Elasticsearch 5.0.0确实是在2。x之后的一个大版本,为大家带来了许多新东西.Elasticsearch现在作为弹性堆栈中的一员,与整个技术栈的其他产品的版本号已经对齐,现在Kibana, Logstash,节拍和Elasticsearch全都是5.0版本了。
这个版本的Elasticsearch是目前为止最快,最安全,最弹性,也是最易用的,而且还带来了很多的改进和新特性。
我们已经通过“Elasticsearch性能调优权威指南”系列,介绍了一些性能调优的基本经验和方法,解释了每一步最关键的系统设置和衡量指标。该系列共分下列3个部分:
<李>权威指南Elasticsearch性能调优(第1部分)李> <李> Elasticsearch性能调优的权威指南(第2部分)李> <李> Elasticsearch性能调优的权威指南(第3部分)李>
索引决策也很重要,它对如何搜索数据有很大的影响。如果是一个字符串字段,是否需要分词或归一化?如果是,怎么做?如果是一个数值型属性,需要哪种精度?还有很多其他类型,比如日期时间,以地理空间形状及父子关系等,需要更多特别的考虑。
我们也通过一个系列教程讨论了“Elasticsearch索引性能优化”,介绍了一些通用的技巧和方法,来最大化索引的吞吐量并降低监控和管理的负载。该教程分如下3个部分:
<李>如何最大化Elasticsearch索引性能(第1部分)李> <李>如何最大化Elasticsearch索引性能(第2部分)李> <李>如何最大化Elasticsearch索引性能(第3部分)李>
本文旨在推荐一些搜索调优技术,策略以及Elasticsearch 5.0及以上的推荐特性。
<强> 1。文档建模强>
内部对象属性数组并不像期望的那样工作Lucene。<强> 强>中没有内部对象的概念,所以Elasticsearch把对象层次展开到一个由属性名称和属性值组成的简单列表中。以下列文档为例:
<代码类=" sql语言">旋度-XPUT ' localhost: 9200/my_index/my_type/1 ?application/json漂亮' - h - type:“- d”{ “集团”:“粉丝”, “用户”:( { “第一”:“约翰”, “去年”:“史密斯” }, { “第一”:“爱丽丝”, “去年”:“白色” } ] }' 代码>该请求会在内部转换为如下的文档形式:
<代码类=" sql语言"> { “集团”:“粉丝”, “用户。第一”:“爱丽丝”,“约翰”, “用户。去年”:(“史密斯”,“白色”) }代码>如果需要索引对象数组,并维护数组中每个对象的依赖关系,应当使用内嵌数据类型而不是对象数据类型。内嵌对象在内部会把数组中的每个对象当作单独的隐藏文档来索引,即使用下述内嵌查询,可以单独查询每个内嵌对象:
<代码类=" sql语言">旋度-XPUT”ES_HOST: ES_PORT/my_index吗?application/json漂亮' - h - type:“- d”{ “映射”:{ " my_type ": { "属性":{ "用户":{ “类型”:“嵌套” } } } } } ' 旋度-XPUT ES_HOST: ES_PORT/my_index/my_type/1 ?application/json漂亮' - h - type:“- d”{ “集团”:“粉丝”, “用户”:( { “第一”:“约翰”, “去年”:“史密斯” }, { “第一”:“爱丽丝”, “去年”:“白色” } ] } ' 旋度xget ES_HOST: ES_PORT/my_index/_search吗?application/json漂亮' - h - type:“- d”{ "查询":{ “嵌套”:{ “路径”:“用户”, "查询":{ “bool”:{ “必须”:[ {"匹配":{“用户。第一”:“爱丽丝”}}, {"匹配":{“用户。去年”:“史密斯”}} ] } } } } } ' 旋度xget ES_HOST: ES_PORT/my_index/_search吗?application/json漂亮' - h - type:“- d”{ "查询":{ “嵌套”:{ “路径”:“用户”, "查询":{ “bool”:{ “必须”:[ {"匹配":{“用户。第一”:“爱丽丝”}}, {"匹配":{“用户。去年":"白"}} ] } }, " inner_hits ": { “亮点”:{ “字段”:{ “用户。第一:{} } } } } } }'Elasticsearch搜索调优权威指南(1/3)