56.fielddata filter的细粒度内存加载控制

   

语法:

   

POST /test_index/_mapping/test_type

{

"properties": {

"test_field": {

"type": "text",

"fielddata": {

"filter": {

"frequency": {

"min": 0.01,

"min_segment_size": 500

}

}

}

}

}

}

   

min:仅仅加载至少在1%doc中出现过的term对应的fielddata。比如es总共有1000doc,现查询的词是hello,那么hello必须在10doc中出现,这个hello对应的fielddata才会加载到内存中来

min_segment_size500,是指少于500docsegment不加载fielddata

加载fielddata的时候,也是按照segment去进行加载的,某个segment里面的doc数量少于500个,那么这个segmentfielddata就不加载。

这项目设置偏底层了,在一般工作学习中,不用去设置。

另:

在我自已的环境中未实验成功:

{

"error": {

"root_cause": [

{

"type": "illegal_argument_exception",

"reason": "Can't parse boolean value [{filter={frequency={min=0.01, min_segment_size=500}}}], expected [true] or [false]"

}

],

"type": "illegal_argument_exception",

"reason": "Can't parse boolean value [{filter={frequency={min=0.01, min_segment_size=500}}}], expected [true] or [false]"

},

"status": 400

}

   

   

原文地址:https://www.cnblogs.com/liuqianli/p/8542086.html