MST

星途 面试题库

面试题:ElasticSearch中_source字段过滤的常见场景及实现方式

请阐述在ElasticSearch中,_source字段过滤一般会在哪些场景下使用?并说明如何通过查询语句实现_source字段过滤,比如只获取文档中的特定几个字段。
38.2万 热度难度
数据库ElasticSearch

知识考点

AI 面试

面试题答案

一键面试

_source字段过滤使用场景

  1. 减少网络传输:当只需要文档中的部分字段时,通过过滤 _source 字段,可避免传输整个文档内容,从而减少网络带宽消耗,提升查询性能。例如在前端展示列表时,可能只需要展示文档的标题、简介等少数字段,无需获取完整文档。
  2. 保护敏感信息:文档中可能包含一些敏感数据,如用户的身份证号、银行卡号等。在某些查询场景下,通过 _source 字段过滤,不返回敏感字段,可有效保护数据安全。
  3. 提高索引性能:在某些场景下,若经常只查询部分字段,可通过配置 _source 字段过滤,让 Elasticsearch 有针对性地构建索引,从而提高索引构建效率。

通过查询语句实现_source字段过滤

可以使用 _source 参数在查询语句中指定要获取的特定字段。例如,假设有一个索引 my_index,文档包含字段 titlecontentauthor,现在只想获取 titleauthor 字段,可以使用以下查询语句:

GET my_index/_search
{
    "_source": ["title", "author"],
    "query": {
        "match_all": {}
    }
}

上述查询使用 _source 参数指定了要返回的字段列表,query 部分使用 match_all 匹配所有文档。实际应用中可根据具体需求修改查询条件。