不给字段创建索引,字段不存放在source中,字段无法聚合查询等

  1. 某个字段不被搜索,也就是说不想为这个字段建立inverted index(反向索引),可以这么做:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    PUT twitter
    {
    "mappings": {
    "uid": {
    "type": "long"
    },
    "user": {
    "type": "object",
    "enabled": false
    }
    }
    }
    }

通过mapping对user字段进行了修改:

1
2
3
4
"user": {
"type": "object",
"enabled": false
}

不想我们的整个文档被搜索:

1
2
3
4
5
6
7

PUT twitter
{
"mappings": {
"enabled": false
}
}

  1. 不想存储任何的字段,也就是说不在source中存储数据,它有完好的inverted index供查询,虽然它没有字的source。
    1
    2
    3
    4
    5
    6
    7
    8
    PUT twitter
    {
    "mappings": {
    "_source": {
    "enabled": false
    }
    }
    }

想节省自己的存储空间,只存储那些需要的字段到source里去
使用include来包含我们想要的字段,同时我们通过exclude来去除那些不需要的字段

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PUT twitter
{
"mappings": {
"_source": {
"includes": [
"*.lat",
"address",
"name.*"
],
"excludes": [
"name.surname"
]
}
}
}

  1. 默认情况下,所有支持doc值的字段均已启用它们。如果您确定不需要对字段进行排序或汇总,也不需要通过脚本访问字段值,则可以禁用doc值以节省磁盘空间:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    PUT twitter
    {
    "mappings": {
    "properties": {
    "city": {
    "type": "keyword",
    "doc_values": false,
    "ignore_above": 256
    },
    "address": {
    "type": "text",
    "fields": {
    "keyword": {
    "type": "keyword",
    "ignore_above": 256
    }
    }
    },
    "age": {
    "type": "long"
    }
    }
    }
    }

把city字段的doc_values设置为false

-------------本文结束 感谢您的阅读-------------
如果觉得我的文章对您有用,请随意打赏.您的支持将鼓励我继续创作!

  • 本文标题: 不给字段创建索引,字段不存放在source中,字段无法聚合查询等
  • 文章作者: 永夜初晗凝碧天
  • 发布时间: 2020年01月06日 - 17:01:17
  • 更新时间: 2020年01月06日 - 17:01:46
  • 本文链接: https://yongnights.github.io/2020/01/06/不给字段创建索引,字段不存放在source中,字段无法聚合查询等/
  • 版权声明: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。