ElasticSearch返回指定字段
环境:阿里云ElasticSearch6.7需求:返回查询结果的指定字段,并不需要所有字段在_source字段中直接指定需要返回的字段GET /ads_lading_trade_brief_es_v2/_search{"_source": ["trade_id","country","importer_clean_name"]}也可以在_source字段中执行需要保留的字段和需要过滤的字段,如下所
·
环境:阿里云ElasticSearch6.7
需求:返回查询结果的指定字段,并不需要所有字段
- 在_source字段中直接指定需要返回的字段
GET /ads_lading_trade_brief_es_v2/_search
{
"_source": [
"trade_id",
"country",
"importer_clean_name"
]
}
- 也可以在_source字段中执行需要保留的字段和需要过滤的字段,如下所示,其中includes代表需要返回的字段,excludes代表不要返回的字段
GET /ads_lading_trade_brief_es_v2/_search
{
"_source": {
"includes": [
"trade_id",
"country",
"importer_clean_name"
],
"excludes": [
"exporter_clean_name"
]
}
}
- 拓展
如果你需要对命中的结果进行一定的运算后再返回,则可以利用script进行
GET /bank/_search
{
"query": {
"match_all": {}
},
"script_fields": {
"test1": {
"script": {
"lang": "painless",
"source": "doc['balance'].value * 2"
}
},
"test2": {
"script": {
"lang": "painless",
<!-- doc指文档-->
"source": "doc['age'].value * params.factor",
"params": {
"factor": 2
}
}
}
}
}
拓展2:说明: params _source 取 _source字段值
官方推荐使用doc,理由是用doc效率比取_source 高
GET /bank/_search
{
"query": {
"match_all": {}
},
"script_fields": {
"ffx": {
"script": {
"lang": "painless",
"source": "doc['age'].value * doc['balance'].value"
}
},
"balance*2": {
"script": {
"lang": "painless",
"source": "params['_source'].balance*2"
}
}
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)