如何保留_source字段的同时返回新增自定义字段

背景

Elasticsearch说它能满足一切意料之中和意料之外的需求,通常,增加一个返回字段就是意料之外又是意料之中的需求。。。

通过官方文档,可以看到,通过script_fields我们可以自定义一些返回字段。但是,如果你只使用这个,会发现_source字段没了。。。 这就太不友好了,总不能通过script_fields把所有_source字段也都手动写一遍吧?(我还真的手写了几个)

解决方案

这个时候,kibana的好处就体现出来了,偶然间我发现,在query同级可以输入_source。。。然后,通过阅读官方文档,发现这个可以限制返回某些列或者不返回某些列。很是强大~ 尝试配合script_fields一起实现要_source的同时还有新增自定义字段的需求。。。 搞定。。。

例子如下:

GET test_index/test_type/_search

{

"query": {

"match_all": {}

},

"_source": "*",

"script_fields": {

"FIELD": {

"script": {

"inline": "return 666"

}

},

"debug": {

"script":{

"inline": "return 123"

}

}

}

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐