OpenSearch/docs
Tanguy Leroux ce63590bd6 API: Add response filtering with filter_path parameter
This change adds a new "filter_path" parameter that can be used to filter and reduce the responses returned by the REST API of elasticsearch.

For example, returning only the shards that failed to be optimized:
```
curl -XPOST 'localhost:9200/beer/_optimize?filter_path=_shards.failed'
{"_shards":{"failed":0}}%
```

It supports multiple filters (separated by a comma):
```
curl -XGET 'localhost:9200/_mapping?pretty&filter_path=*.mappings.*.properties.name,*.mappings.*.properties.title'
```

It also supports the YAML response format. Here it returns only the `_id` field of a newly indexed document:
```
curl -XPOST 'localhost:9200/library/book?filter_path=_id' -d '---hello:\n  world: 1\n'
---
_id: "AU0j64-b-stVfkvus5-A"
```

It also supports wildcards. Here it returns only the host name of every nodes in the cluster:
```
curl -XGET 'http://localhost:9200/_nodes/stats?filter_path=nodes.*.host*'
{"nodes":{"lvJHed8uQQu4brS-SXKsNA":{"host":"portable"}}}
```

And "**" can be used to include sub fields without knowing the exact path. Here it returns only the Lucene version of every segment:
```
curl 'http://localhost:9200/_segments?pretty&filter_path=indices.**.version'
{
  "indices" : {
    "beer" : {
      "shards" : {
        "0" : [ {
          "segments" : {
            "_0" : {
              "version" : "5.2.0"
            },
            "_1" : {
              "version" : "5.2.0"
            }
          }
        } ]
      }
    }
  }
}
```

Note that elasticsearch sometimes returns directly the raw value of a field, like the _source field. If you want to filter _source fields, you should consider combining the already existing _source parameter (see Get API for more details) with the filter_path parameter like this:

```
curl -XGET 'localhost:9200/_search?pretty&filter_path=hits.hits._source&_source=title'
{
  "hits" : {
    "hits" : [ {
      "_source":{"title":"Book #2"}
    }, {
      "_source":{"title":"Book #1"}
    }, {
      "_source":{"title":"Book #3"}
    } ]
  }
}
```
2015-05-26 13:51:04 +02:00
..
community [Docs] Fix minor spelling errors 2015-05-25 19:56:43 +02:00
groovy-api [Docs] Fix minor spelling errors 2015-05-25 19:56:43 +02:00
java-api [Docs] Fix minor spelling errors 2015-05-25 19:56:43 +02:00
perl Docs: Minor test change to Perl docs 2015-02-28 17:19:55 +01:00
python Updated copyright years to include 2015 2015-02-28 03:18:45 +01:00
reference API: Add response filtering with filter_path parameter 2015-05-26 13:51:04 +02:00
resiliency [Docs] Fix minor spelling errors 2015-05-25 19:56:43 +02:00
river Warning in documentation for deprecation of rivers 2015-04-05 20:54:26 +02:00
ruby Docs: Fixed typos 2015-05-05 10:38:05 +02:00
README.asciidoc Docs: Updated docs/README.asciidoc to point to the new docs repo 2015-04-27 08:54:07 +02:00

README.asciidoc

The Elasticsearch docs are in AsciiDoc format and can be built using the Elasticsearch documentation build process

See: https://github.com/elastic/docs