小编典典

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

elasticsearch

我正在执行一个查询,返回的查询类似于70k文档(我需要所有文档,我目前正在使用扫描和滚动)

发生的结果是响应非常大(2 MB,我们已经将其从6 MB减少了)。我们筛选了所需的字段,由于仅从API调用查询,因此我们减少了属性的名称。

我可以看到的是,数组“命中”中的每个文档都具有以下我实际上不需要的默认字段:

  • _index(我们仅要求一个索引)
  • _type(我们只要求一种类型)
  • _id(我们在字段上确实有此名称)
  • _score(我们没有得分)

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

"hits" : [
{
    "_source": {
        ...
    }
},
{
    "_source": {
        ...
    }
}

]

谢谢阅读!感谢您的帮助!


阅读 305

收藏
2020-06-22

共1个答案

小编典典

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

curl -XGET 'localhost:9200/_search?pretty&filter_path=hits.hits._source'

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

curl -XGET 'localhost:9200/_search?pretty&filter_path=hits.hits._source&_source=title,name'
2020-06-22