es映射参数--doc_values参数

doc_values


大部分字段默认被索引,这使得它们可以被搜索。倒排索引可以让搜索在一个唯一的排序过的词列表里查询搜索词,并且立刻从中找到包含该搜索词的文档列表。

排序、聚合以及在脚本中访问字段,这都要求一个不同的数据访问模式。我们不需要查找词并找到文档,而是需要能够查找文档并查找包含该词的字段。

doc_valuies启用的字段是存储在磁盘上的数据结构,在文档被索引时创建,它使这种数据访问模式成为可能。它们存储与_source相同的值,但是以面向列的方式存储,这样可以更有效地进行排序和聚合。几乎所有字段类型都支持doc_valuies,但textannotated_text字段除外。

所有支持doc_values参数的字段都默认启用了。如果你确定不需要在一个字段上排序、聚合或通过脚本字段访问到该字段的值,你可以禁用doc_values,以节省磁盘空间:

PUT my_index
{
  "mappings": {
    "properties": {
      "status_code": {             -----------1------------
        "type":       "keyword"
      },
      "session_id": {              -----------2------------
        "type":       "keyword",
        "doc_values": false
      }
    }
  }
}
  1. status_code字段默认开启了doc_values
  2. session_id字段禁用了doc_values,但是仍然可以通过这个字段搜索文档,但是不能在这个字段上排序、聚合或者从脚本访问该字段的值,如果这样做的话,es会抛出一个异常

猜你喜欢

转载自blog.csdn.net/weixin_42237702/article/details/107598044