# fielddata filter 的细粒度内存加载控制
可以通过 mappings 来定制每个 fielddata 的内存使用
POST /test_index/_mapping/my_type
{
"properties": {
"my_field": {
"type": "text",
"fielddata": {
"filter": {
"frequency": {
"min": 0.01,
"min_segment_size": 500
}
}
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
min:仅仅加载至少在 1% 的 doc 中出现过的 term 对应的 fielddata
比如说总共有 1000 个 doc,hello 这个值必须在 10 个 doc 中出现,那么这个 hello 对应的 fielddata 才会加载到内存中来
min_segment_size:少于 500 doc 的 segment 不加载 fielddata
加载 fielddata 的时候,也是按照 segment 去进行加载的,某个 segment 里面的 doc 数量少于 500 个,那么这个 segment 的 fielddata 就不加载
这个,就我的经验来看,有点底层了,一般不会去设置它,大家知道就好