面试题答案
一键面试_source字段过滤使用场景
- 减少网络传输:当只需要文档中的部分字段时,通过过滤
_source
字段,可避免传输整个文档内容,从而减少网络带宽消耗,提升查询性能。例如在前端展示列表时,可能只需要展示文档的标题、简介等少数字段,无需获取完整文档。 - 保护敏感信息:文档中可能包含一些敏感数据,如用户的身份证号、银行卡号等。在某些查询场景下,通过
_source
字段过滤,不返回敏感字段,可有效保护数据安全。 - 提高索引性能:在某些场景下,若经常只查询部分字段,可通过配置
_source
字段过滤,让 Elasticsearch 有针对性地构建索引,从而提高索引构建效率。
通过查询语句实现_source字段过滤
可以使用 _source
参数在查询语句中指定要获取的特定字段。例如,假设有一个索引 my_index
,文档包含字段 title
、content
和 author
,现在只想获取 title
和 author
字段,可以使用以下查询语句:
GET my_index/_search
{
"_source": ["title", "author"],
"query": {
"match_all": {}
}
}
上述查询使用 _source
参数指定了要返回的字段列表,query
部分使用 match_all
匹配所有文档。实际应用中可根据具体需求修改查询条件。