当前位置: 首页 > 面试题库 >

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

郗唯
2023-03-14
问题内容

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

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

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

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

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

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

]

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


问题答案:

是的,如果您使用的是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'


 类似资料:
  • 问题内容: 我有一个索引,其中很多纸在同一字段中具有相同的值。在这一领域,我有一个重复数据删除技术。 聚合器将作为计数器来找我。我想要一份文件清单。 我的索引: Doc 1 {domain:’domain1.fr’,name:’name1’,date:‘01 -01-2014’} Doc 2 {domain:’domain1.fr’,name:’name1’,date:‘01 -02-2014’}

  • 嗨,我是ElasticSearch的新手,我正在努力从ElasticSearch的响应中删除所有额外字段。请参见以下回复: 上面你可以看到响应中有一些附加字段,如_index、_type、_score、max_score等。我按照ElasticSearchresponse_filtering指南删除了这些字段,但对我不起作用。我还将filter_path参数传递给请求0.0.0.0:5000/v4

  • 如果我们有如下查询 返回预期的结果(如下所示) 正如您所看到的,查询是针对和我们希望从结果中排除其他字段,但只包括和的字段 并排除其他字段,例如,以下是一些不是或(传递到查询中的字段)的字段-从

  • 问题内容: 我需要在所有索引到Elasticsearch的文档中删除一个字段。我该怎么做。任何删除查询都可以帮助我实现这一点。 问题答案: @backtrack所说的是对的,但是在Elasticsearch中有一种非常方便的方法。Elasticsearch将抽象出删除的内部复杂性。您需要使用更新API来实现- 您可以在此处找到更多文档。 注意:从Elastic Search 6开始,您需要包括一个

  • 如果我在浏览器中直接对elasticsearch进行搜索,例如: http://localhost:9200/mydocs/_search?q=awesome%20搜索 搜索体数据实际上是什么样子的?它是否执行并包含所有字段?我尝试过编写一个包含所有字段的,但在浏览器中正确操作会得到不同的结果。

  • 现有的MySQL表有一个DateTime字段,该字段不为null,默认值设置为'0001-00-0000:00:00'。是否可以更改此表以移除DateTime字段的默认值?