Elasticsearch中使用script_fields的同时还返回_source字段的方法


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

 


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注