Elasticsearch从搜索的响应正文中删除默认字段

Pab*_*lli 3 compression search elasticsearch

我正在做一个返回70k文件的查询(我需要所有这些,我当前正在使用扫描和滚动)

会发生什么是响应非常大(2 MB,我们已将其从6 MB减少).我们已经过滤了我们需要的字段,并且由于查询仅从API调用,因此我们减少了属性的名称.

我能看到的是,数组"hits"中的每个文档都有以下默认字段,我真的不需要它们:

  • _index(我们只在一个索引上请求)
  • _type(我们只在一种类型上请求)
  • _id(我们alredy在一个字段上有这个)
  • _score(我们没得分)

有没有办法删除它们,所以我可以有以下结构:

"hits" : [
{
    "_source": {
        ...
    }
},
{
    "_source": {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

]

谢谢阅读!我将非常感谢你的帮助!

Val*_*Val 12

是的,如果您使用的是ES 1.6或更高版本,则可以使用响应过滤filter_path参数.

curl -XGET 'localhost:9200/_search?pretty&filter_path=hits.hits._source'
Run Code Online (Sandbox Code Playgroud)

您甚至可以只指定所需的字段

curl -XGET 'localhost:9200/_search?pretty&filter_path=hits.hits._source&_source=title,name'
Run Code Online (Sandbox Code Playgroud)