Swarm Storage integrates with Elasticsearch to allow client applications to list and search metadata on objects being stored in the Swarm cluster. Access these operations by applying query arguments are specific to search.
See Elasticsearch for Swarm for details on implementing and managing Elasticsearch.
Scope of Searching in Swarm
Swarm Search supports domain-level searching; to search on an entire cluster, iterate across the domains. Swarm looks up objects by the underlying contextid
so querying can be performed by context (domain/bucket) name as usual but always get correct query results even if a domain or bucket has been renamed. Swarm generates the final content query after this lookup, which supports a wide range of functionality:
Filter by name or value. Filter by an object's
name
or any metadata (field
) using equality checks, greater/less than comparisons, and wildcard matches.- Filter by buckets. Filter the search to certain buckets (
context
) using greater/less than comparison (for buckets in numbered ranges) or wildcard matches (for buckets that match a prefix pattern). Include the bucket in the URL path to restrict search to a single bucket. Filter by object type. Add the
stype
argument to filter by one of these Swarm types: domain, bucket, named, alias, immutable, unnamed (both alias and immutable), or all.- Operate on metadata fields. Perform AND and OR operations on the values of metadata fields to find the matching objects.
Sort by value. Sort specification can combine multiple metadata fields, including the context.
Paginate large result sets with sort markers. Apply markers when the context is sorted (ascending or descending) and in conjunction with markers for other metadata fields, when the sort specification includes multiple fields.
Calculate disk usage. The
du
aggregation filters the results to calculate disk usage, inclusive or exclusive of object replicas in the cluster.- Locate versions. Use the
versions
argument to surface all of the historical versions of a single object or of all objects in the context if using versioning.