这几乎始终是需要的功能,因为:

    • 搜索结果中能得到完整的文档 —— 不需要额外去别的数据源中查询文档

    • 如果缺少 _source 字段,部分 更新 请求不会起作用

    • 你可以从 _source 中通过 getsearch 请求取回部分字段,而不是整个文档。

    • 这样更容易排查错误,因为你可以准确的看到每个文档中包含的内容,而不是只能从一堆 ID 中猜测他们的内容。

    即便如此,存储 字段还是要占用硬盘空间的。假如上面的理由对你来说不重要,你可以用下面的映射禁用 _source 字段:

    1. {
    2. "query": { "match_all": {}},

    这些字段会从 _source 中提取出来,而不是返回整个 _source 字段。