如何保留_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" } } } }