elasticsearch如何控制哪些字段输出
时间: 2023-07-18 18:43:54 浏览: 44
在 Elasticsearch 中,可以使用 `_source` 字段来控制文档中哪些字段要被返回。默认情况下, `_source` 字段会返回整个文档的内容,但是可以通过指定需要返回的字段名称或通配符来控制只返回部分字段。
例如,假设有一个名为 `my_index` 的索引,其中有一个包含以下内容的文档:
```
{
"title": "Elasticsearch 101",
"author": "John Doe",
"date": "2021-01-01",
"content": "This is a beginner's guide to Elasticsearch."
}
```
如果只想返回 `title` 和 `author` 两个字段,则可以使用以下查询:
```
GET my_index/_search
{
"_source": ["title", "author"],
"query": {
"match": {
"title": "Elasticsearch"
}
}
}
```
此查询将仅返回以下结果:
```
{
"_source": {
"title": "Elasticsearch 101",
"author": "John Doe"
}
}
```
注意,如果只想返回所有字段的子集,还可以使用通配符。例如,以下查询将返回所有字段的前两个字符:
```
GET my_index/_search
{
"_source": ["*_source"],
"stored_fields": ["*_source"],
"script_fields": {
"sample_field": {
"script": {
"source": "doc['_source'].toString().substring(0,2)"
}
}
},
"query": {
"match": {
"title": "Elasticsearch"
}
}
}
```