Field Capabilities APIedit
The field capabilities API allows for retrieving the capabilities of fields across multiple indices.
Field Capabilities Requestedit
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.
FieldCapabilitiesRequest request = new FieldCapabilitiesRequest() .fields("user") .indices("posts", "authors", "contributors");
Optional argumentsedit
Synchronous Executionedit
The fieldCaps
method executes the request synchronously:
FieldCapabilitiesResponse response = client.fieldCaps(request, RequestOptions.DEFAULT);
Asynchronous Executionedit
The fieldCapsAsync
method executes the request asynchronously,
calling the provided ActionListener
when the response is ready:
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:
FieldCapabilitiesResponseedit
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.
Map<String, FieldCapabilities> userResponse = response.getField("user"); FieldCapabilities textCapabilities = userResponse.get("keyword"); boolean isSearchable = textCapabilities.isSearchable(); boolean isAggregatable = textCapabilities.isAggregatable(); String[] indices = textCapabilities.indices(); String[] nonSearchableIndices = textCapabilities.nonSearchableIndices(); String[] nonAggregatableIndices = textCapabilities.nonAggregatableIndices();
A map with entries for the field’s possible types, in this case |
|
All indices where the |
|
The subset of these indices where the |
|
Another subset of these indices where the |