123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- [[search-field-caps]]
- === Field Capabilities API
- The field capabilities API allows to retrieve the capabilities of fields among multiple indices.
- The field capabilities API by default executes on all indices:
- [source,js]
- --------------------------------------------------
- GET _field_caps?fields=rating
- --------------------------------------------------
- // CONSOLE
- The request can also be restricted to specific indices:
- [source,js]
- --------------------------------------------------
- GET twitter/_field_caps?fields=rating
- --------------------------------------------------
- // CONSOLE
- // TEST[setup:twitter]
- Supported request options:
- [horizontal]
- `fields`:: A list of fields to compute stats for. The field name supports wildcard notation. For example, using `text_*`
- will cause all fields that match the expression to be returned.
- [float]
- ==== Field Capabilities
- The field capabilities API returns the following information per field:
- [horizontal]
- `searchable`::
- Whether this field is indexed for search on all indices.
- `aggregatable`::
- Whether this field can be aggregated on all indices.
- `indices`::
- The list of indices where this field has the same type,
- or null if all indices have the same type for the field.
- `non_searchable_indices`::
- The list of indices where this field is not searchable,
- or null if all indices have the same definition for the field.
- `non_aggregatable_indices`::
- The list of indices where this field is not aggregatable,
- or null if all indices have the same definition for the field.
- [float]
- ==== Response format
- Request:
- [source,js]
- --------------------------------------------------
- GET _field_caps?fields=rating,title
- --------------------------------------------------
- // CONSOLE
- [source,js]
- --------------------------------------------------
- {
- "indices": ["index1", "index2", "index3", "index4", "index5"],
- "fields": {
- "rating": { <1>
- "long": {
- "searchable": true,
- "aggregatable": false,
- "indices": ["index1", "index2"],
- "non_aggregatable_indices": ["index1"] <2>
- },
- "keyword": {
- "searchable": false,
- "aggregatable": true,
- "indices": ["index3", "index4"],
- "non_searchable_indices": ["index4"] <3>
- }
- },
- "title": { <4>
- "text": {
- "searchable": true,
- "aggregatable": false
- }
- }
- }
- }
- --------------------------------------------------
- // NOTCONSOLE
- <1> The field `rating` is defined as a long in `index1` and `index2`
- and as a `keyword` in `index3` and `index4`.
- <2> The field `rating` is not aggregatable in `index1`.
- <3> The field `rating` is not searchable in `index4`.
- <4> The field `title` is defined as `text` in all indices.
- [float]
- ==== Unmapped fields
- By default unmapped fields are ignored. You can include them in the response by
- adding a parameter called `include_unmapped` in the request:
- [source,js]
- --------------------------------------------------
- GET _field_caps?fields=rating,title&include_unmapped
- --------------------------------------------------
- // CONSOLE
- In which case the response will contain an entry for each field that is present in
- some indices but not all:
- [source,js]
- --------------------------------------------------
- {
- "indices": ["index1", "index2", "index3"],
- "fields": {
- "rating": {
- "long": {
- "searchable": true,
- "aggregatable": false,
- "indices": ["index1", "index2"],
- "non_aggregatable_indices": ["index1"]
- },
- "keyword": {
- "searchable": false,
- "aggregatable": true,
- "indices": ["index3", "index4"],
- "non_searchable_indices": ["index4"]
- },
- "unmapped": { <1>
- "indices": ["index5"],
- "searchable": false,
- "aggregatable": false
- }
- },
- "title": {
- "text": {
- "indices": ["index1", "index2", "index3", "index4"],
- "searchable": true,
- "aggregatable": false
- },
- "unmapped": { <2>
- "indices": ["index5"]
- "searchable": false,
- "aggregatable": false
- }
- }
- }
- }
- --------------------------------------------------
- // NOTCONSOLE
- <1> The `rating` field is unmapped` in `index5`.
- <2> The `title` field is unmapped` in `index5`.
|