Skip to content

Reference

Glossary

The remote S3-compatible object storage container where authoritative index data and deployment state are stored in object mode. See Architecture and Storage layout.

A node started with the indexer property enabled (EXOFIND_INDEXER_ENABLED=true) that competes to write indexes. Candidate nodes divide indexes among themselves through the leadership table. See Separating search and indexing nodes.

An entry in the leadership table that assigns write responsibility for an index to a specific holder node with an expiration timestamp. A candidate node must periodically renew its claims before their lease expires. See Synchronization.

An action that flushes Lucene changes and writes pending documents and definition updates to storage as a manifest push. See Admin API and What a write guarantees.

The schema configuration of an index or generation specifying its fields, data types, field usages, analyzers, and ranking rules. See Field types.

An identifier for an index definition returned in the version field and the ETag header. It is passed in If-Match headers on PUT requests to prevent overwriting concurrent updates. See Admin API.

The nodes that share one bucket and prefix in object mode, or the single node that owns a directory in local mode. Keys and the registry belong to the deployment. See Architecture.

A writer session identifier claimed by an indexer before uploading files. Epoch scoping ensures that files are uploaded under e<epoch>/ so concurrent writer sessions never write to the same storage keys. Files the engine rewrites in place also carry their checksum in the key, so two pushes of one session never write to the same key either. See Synchronization.

A field usage that enables value count aggregations or range buckets over matching search results. See Field types.

An opaque string that identifies a state of an index: the generation the index answers from, a commit sequence of that generation, and a version of the search settings. Write and read responses return a token, and a read request can supply it to ensure that a node answers from that state or a later one. See Search API.

A complete physical version of an index containing its own Lucene files, manifest, definition, and documents, formatted as index@generation. An index holds one or more generations, with one designated as live. See Generations.

An element of an API key combining a set of permissions or a role with a set of index patterns. Grants are evaluated as a union to authorize API requests. See Authentication.

A version a writer reports in the registry after a push or a settings change so other nodes learn a generation or its settings moved sooner. A hint is advisory, and a node still verifies its copies against the manifests on an interval. See Synchronization.

A named collection of searchable documents structured as a name with one or more generations beneath it. The bare index name routes queries to the current live generation. See Generations.

An exact index name or a prefix ending with * specified in an API key grant. Patterns restrict which indexes a grant permits an API key to access. See Authentication.

A candidate node holding an active claim to write to an index. An indexer runs an active Lucene writer and serves write requests for that index. See Separating search and indexing nodes.

In authentication, an API credential consisting of grants and an optional expiration that authorizes API requests. In storage, an object path in the bucket. In object fields, a child field property marking the unique identifier of an object value in an array. See Authentication and Field types.

A shared storage object (indexer-leadership.ef.bin) that tracks node liveness, candidate nodes, and active index writer claims. See Synchronization.

The designated generation of an index that currently serves search queries and receives writes addressed to the bare index name. See Generations.

The cached Lucene directory, manifest, and definition files stored on a node’s local disk under indexes/<index>@<generation>/. See Architecture and Storage layout.

A single-node storage configuration (EXOFIND_STORAGE_MODE=local) where all index data, registries, keys, and settings reside on the local disk without an object storage bucket. See Architecture.

The storage object (manifest.ef.bin) that lists the Lucene files of an index generation along with their sizes, checksums, keys, version number, and writer epoch. See Synchronization and Storage layout.

An individual running Exofind instance that serves search requests locally and can optionally act as an indexer candidate. Nodes coordinate entirely through shared storage. See Architecture.

The storage configuration (EXOFIND_STORAGE_MODE=object) where authoritative index data, registries, keys, and leadership state reside in an S3-compatible bucket, and nodes use local disks as ephemeral caches. See Architecture.

An immutable capability assigned to API keys inside grants that authorizes a specific operation, such as search, documents.write, or registry.repair. See Authentication.

In storage, the path hierarchy under which an index, generation, or deployment objects are organized. In index patterns, a name prefix ending with * matching multiple indexes. See Authentication and Storage layout.

A unique document identifier field marked with primaryKey: true. Documents with matching primary keys overwrite existing documents, and change tracking during reindexing records changes by primary key. See Field types.

The action of switching an index to serve queries from a specified generation using a conditional write to the index registry. See Generations.

An operation where a node downloads new or updated index files and manifests from object storage to its local disk. See Architecture.

An operation where a writer node uploads new index files to storage, conditionally updates the remote manifest, and deletes the obsolete objects that an earlier manifest stopped naming more than a grace period ago. See Synchronization.

A query-time multiplier that adjusts a relevance score by a value the document already holds, such as a sales count or a publication date. It reads a field with sort enabled, converts the value to a number between 0 and 1 through a shape, and multiplies the score by 1 + weight * shape. A ranking signal is a ranking rule and a signal field is a storage mode, and neither one requires the other. See Relevance.

The configured interval at which nodes re-read shared storage objects to discover changes to indexes or search settings. See Synchronization.

A single storage object (registry/indexes.ef.bin or registry.ef.bin) that records which indexes exist, which generations each index contains, which generation is live, and version hints. See Generations.

A background task running on the index writer node that populates a new generation by copying documents from an existing generation and replaying logged changes. See Admin API.

A storage object (removed.ef.bin) written under an index or generation prefix upon deletion, staging the prefix for removal by a background sweep after a grace period. See Generations and Storage layout.

A second scoring pass that reorders the best results of the first pass inside a window. It changes neither which documents matched nor the facet counts and totals, which the first pass decides. See Relevance.

A per-node credential configured through EXOFIND_AUTH_ROOT_KEY with full administrative permissions. It is never stored in key storage and cannot be listed or revoked through the API. See Authentication.

The evaluation boundary of a permission, which is either index-scoped (restricted by index patterns) or deployment-scoped (applying across the entire deployment). See Authentication.

Per-index configuration stored under indexes/<index>/settings.ef.bin that controls query-time behavior, including ranking overrides, synonyms, typo exclusions, and field interpretation. Search settings attach to the index name rather than a generation. See Admin API and Storage layout.

The function a ranking signal applies to a field value to get a number between 0 and 1. The three shapes are saturation for an unbounded count, decay for an age, and linear for a value already in a known range. See Field types.

A numeric field declared with a signal property. The engine stores its values only as doc values and leaves them out of the stored document source, so a change naming the primary key and signal fields alone refreshes the values in place without rewriting the document. A signal field sorts without sort enabled. See Signal fields for why the values are held this way, and Field types for the rules.

An isolated document instance created for each object in an array when an object field is configured with "mode": "nested". Sub-documents can be searched with nested queries and returned as individual hits. See Field types.

A fallback ordering rule that orders two documents the primary sort ranked equally. The engine appends tie breakers after the sort order a search asks for and evaluates them in sequence until one resolves the tie. See Relevance.

The single candidate node currently holding the claim to modify an index, accumulate local changes, and push updates to storage. See Architecture.

Exofind is built by Level Four AB and is available under the Apache License 2.0.