12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- [[java-rest-high-field-caps]]
- === Field Capabilities API
- The field capabilities API allows for retrieving the capabilities of fields across multiple indices.
- [[java-rest-high-field-caps-request]]
- ==== Field Capabilities Request
- A `FieldCapabilitiesRequest` contains a list of fields to get capabilities for,
- should be returned, plus an optional list of target indices. If no indices
- are provided, the request will be executed on all indices.
- Note that fields parameter supports wildcard notation. For example, providing `text_*`
- will cause all fields that match the expression to be returned.
- ["source","java",subs="attributes,callouts,macros"]
- --------------------------------------------------
- include-tagged::{doc-tests}/SearchDocumentationIT.java[field-caps-request]
- --------------------------------------------------
- [[java-rest-high-field-caps-request-optional]]
- ===== Optional arguments
- ["source","java",subs="attributes,callouts,macros"]
- --------------------------------------------------
- include-tagged::{doc-tests}/SearchDocumentationIT.java[field-caps-request-indicesOptions]
- --------------------------------------------------
- <1> Setting `IndicesOptions` controls how unavailable indices are resolved and
- how wildcard expressions are expanded.
- [[java-rest-high-field-caps-sync]]
- ==== Synchronous Execution
- The `fieldCaps` method executes the request synchronously:
- ["source","java",subs="attributes,callouts,macros"]
- --------------------------------------------------
- include-tagged::{doc-tests}/SearchDocumentationIT.java[field-caps-execute]
- --------------------------------------------------
- [[java-rest-high-field-caps-async]]
- ==== Asynchronous Execution
- The `fieldCapsAsync` method executes the request asynchronously,
- calling the provided `ActionListener` when the response is ready:
- ["source","java",subs="attributes,callouts,macros"]
- --------------------------------------------------
- include-tagged::{doc-tests}/SearchDocumentationIT.java[field-caps-execute-async]
- --------------------------------------------------
- <1> The `FieldCapabilitiesRequest` to execute and the `ActionListener` to use when
- the execution completes.
- The asynchronous method does not block and returns immediately. Once the request
- completes, the `ActionListener` is called back using the `onResponse` method
- if the execution successfully completed or using the `onFailure` method if
- it failed.
- A typical listener for `FieldCapabilitiesResponse` is constructed as follows:
- ["source","java",subs="attributes,callouts,macros"]
- --------------------------------------------------
- include-tagged::{doc-tests}/SearchDocumentationIT.java[field-caps-execute-listener]
- --------------------------------------------------
- <1> Called when the execution is successfully completed.
- <2> Called when the whole `FieldCapabilitiesRequest` fails.
- [[java-rest-high-field-caps-response]]
- ==== FieldCapabilitiesResponse
- For each requested field, the returned `FieldCapabilitiesResponse` contains its type
- and whether or not it can be searched or aggregated on. The response also gives
- information about how each index contributes to the field's capabilities.
- ["source","java",subs="attributes,callouts,macros"]
- --------------------------------------------------
- include-tagged::{doc-tests}/SearchDocumentationIT.java[field-caps-response]
- --------------------------------------------------
- <1> A map with entries for the field's possible types, in this case `keyword` and `text`.
- <2> All indices where the `user` field has type `keyword`.
- <3> The subset of these indices where the `user` field isn't searchable, or null if it's always searchable.
- <4> Another subset of these indices where the `user` field isn't aggregatable, or null if it's always aggregatable.
|