ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果

摘要:
在默认情况下,开启_all和_source这样索引下来,占用空间很大.根据我们单位的情况,我觉得可以将需要的字段保存在_all中,然后使用IK分词以备查询,其余的字段,则不存储.并且禁用_source字段.{"mappings":{"sod_song_ksc":{"dynamic_templates":[{"all_field":{"mapping":{"index":"no","store":"yes","type":"{dynamic_type}","include_in_all":false},"match":"*"}}],"_source":{"enabled":false},"_all":{"enabled":true,"analyzer":"ik"},"properties":{"SongID":{"type":"long","store":"yes","index":"not_analyzed","include_in_all":true}}}}}这里采用了动态映射的功能,符合条件的字段,直接采用动态映射中预先的配置.这里动态映射匹配所有字段,将_all禁用。
在默认情况下,开启_all和_source

这样索引下来,占用空间很大.
ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果第1张
根据我们单位的情况,我觉得可以将需要的字段保存在_all中,然后使用IK分词以备查询,其余的字段,则不存储.
并且禁用_source字段.(也可以通过_source includes或者excludes 指定或者排除字段)
{  
    "mappings": {  
        "sod_song_ksc": {  
            "dynamic_templates": [  
                {  
                    "all_field": {  
                        "mapping": {  
                            "index": "no",   
                            "store": "yes",   
                            "type": "{dynamic_type}",   
                            "include_in_all": false
                        },   
                        "match": "*"
                    }  
                }  
            ],   
            "_source": {  
                "enabled": false
            },   
            "_all": {  
                "enabled": true,   
                "analyzer": "ik"
            },   
            "properties": {  
                "SongID": {  
                    "type": "long",   
                    "store": "yes",   
                    "index": "not_analyzed",   
                    "include_in_all": true
                }               
            }  
        }  
    }  
}  

这里采用了动态映射的功能(dynamic_templates),符合条件的字段,直接采用动态映射中预先的配置.
这里动态映射匹配所有字段,将_all禁用。
然后有需要的字段,再逐个开启.
索引之后,效果非常明显.磁盘占用减少了一半还多.
动态映射{name}表示文档中原始的字段名称,{dynamic_type}表示原始文档的类型
ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果第2张
动态映射在实际使用中,除了匹配字段名称,还可以匹配类型。
"match_mapping_type": "string"
动态映射如果设置在 "_default_" 则表示规则应用在所有类型的索引上.
虽然禁用_source,指定加入_all的字段,可以大幅减少磁盘空间占用,
但是查询会麻烦一些。原来可以直观看到的数据没有了.
ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果第3张
而且默认情况下,没有足够的信息显示.
ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果第4张
所以查询显得麻烦一些,使用如下的方式:
ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果第5张
转自:http://m.blog.itpub.net/29254281/viewspace-2103996/

免责声明:文章转载自《ES索引瘦身 禁用_source后需要设置field store才能获取数据 否则无法显示搜索结果》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇一些开源的dashboard 解决方案kettle中json input中数据的解析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

websphere application server (was) 安装8.5.5.18

目录环境准备所需的软件或系统版本安装包目录结构安装步骤安装was8.5.0.0升级到8.5.5.18打开浏览器以访问控制台环境准备如果系统主机名不是localhost,您需要将所需的软件或系统版本jdk1.8centos7.5WAS提前添加到/etc/hosts/文件中_ ND_V8.5_1_OF_3.zipWAS_ ND_V3.5_2_OF_3.zip代理...

Vue中在移动端如何判断设备是安卓还是ios

u、 匹配(/(i[^;]+;(U;)?CPU+MacOSX/);如果(isiOS){return“ios”;}否则{return“android”;}},...

mac vscode 下载安装与配置

我觉得这太复杂了。只需直接缩放图像。png2)修改右侧图像上编辑器的文本大小。png...

SPEC CPU——简介和使用

前言SPECCPU是一个行业标准的CPU密集型基准套件。SPEC设计此套件是为了使用真实用户应用程序开发的工作负载,在最广泛的真实硬件范围内提供计算密集型性能的比较度量。SPECCPU2006和SPECCPU2017表明SPECCPU2006是2006年6月推出的基准测试套件。它有几种不同的方法来测量计算机性能。...

Linux 文件截断的几种方式

文件截断,指的是将文件内容分成两半,只保留需要的文件长度的那部分.通常,将文件长度截断为0.文件截断方式:1.使用系统调用open/fopenO_TRUNC截断open截断文件,会清空文件已有内容,即保留长度为0.指定O_TRUNC标识时,文件必须可写方式(如O_RDWR,O_WRONLY)打开.例子,intfd=open(FILE_PATH,O_RDWR|...

Windows 上的 C++ 编译器

Windows上的C++编译器主要有:MinGW(MinimalistGNUforWindows)TDM-GCC(TDM是TwilightDragonMedia的缩写)Mingw-w64(AWindowscompilersuitecombiningthemostrecentGCCcompilerwiththefreeandopen-sourceMinGWor...