弹性搜索 - 仅获取所有索引中的特定字段

时间:2016-04-04 15:30:18

标签: elasticsearch nosql

我有数百个索引,我想从这些索引下的每个记录中只获取一个给定的字段。我可以做以下

curl -XGET 'http://localhost:9200/cms-2016-03-30/job/_search?pretty=true&field=CMSDataset'

这很遗憾地返回了很多我不想要的东西,也没有给我所有的记录(~10 ^ 6)。

此外,还有许多cms- *样式索引,我想解析所有这些索引并获得 此字段。我该怎么做?

1 个答案:

答案 0 :(得分:2)

您需要使用source filtering代替fields(已弃用)

curl -XGET 'http://localhost:9200/cms-2016-03-30/job/_search?pretty=true&_source=CMSDataset'
                                                                            ^
                                                                            |
                                                                       change this

来自official documentation

  

fields参数是关于显式标记为存储在映射中的字段,默认情况下是关闭的,通常不建议使用。使用源过滤来选择要返回的原始源文档的子集。

<强>更新

您可以使用size参数(例如100)来返回更多记录(默认情况下为10),然后只使用*作为索引名称:

curl -XGET 'http://localhost:9200/*/_search?pretty=true&size=100&_source=CMSDataset'