Skip to content

Reference

Configuration reference

Every YoloSearch setting, grouped by section, with its kind, scope, default, and flag — plus the precedence model and where files are discovered.


YoloSearch has one configuration catalog. Every setting in it has a dotted key, a kind, a scope, a default, an environment variable, and — unless it is a secret or a compile-time value — a flag. The same key means the same thing in a file, in the environment, on a command line, and through the runtime API.

The configuration guide explains the model. This page is the table.

Precedence

Later layers win:

default  <  file  <  environment  <  flag  <  runtime API (config set)

Every value carries its provenance. config get, config list, and config export show it.

Scope

Scope says what may change at runtime.

Scope Meaning
startup Fixed when the process starts. A file reload does not change it
node-runtime Accepts yolosearch config set and takes effect without a restart
compile-time Display only. It reports what this binary is, and cannot be set at all

Only node-runtime settings accept config set. A startup setting can still be put in a file or the environment; it just needs a restart to take effect.

Naming

The three spellings of a setting derive from its key mechanically:

Key Environment Flag
server.listen YOLOSEARCH_SERVER_LISTEN --server-listen, aliased --listen
cache.full_bytes YOLOSEARCH_CACHE_FULL_BYTES --cache-full-bytes
object.s3.use_ssl YOLOSEARCH_OBJECT_S3_USE_SSL --object-s3-use-ssl, aliased --s3-use-ssl

The environment name is YOLOSEARCH_ followed by the key with every . and _ rendered as _. Some settings carry a short alias as well as the derived long flag; both work, and the tables below name the alias where one exists.

File discovery

Files are discovered in a fixed order, and later files override earlier ones:

  1. /etc/yolosearch/yolosearch.yml, then /etc/yolosearch/conf.d/*.yml
  2. $XDG_CONFIG_HOME/yolosearch/yolosearch.yml (default ~/.config/yolosearch/), then its conf.d/*.yml
  3. ./yolosearch.yml
  4. <data-dir>/config.yaml, when --data-dir is set
  5. --config-dir DIR's *.yml, in name order
  6. --config FILE

.yaml is accepted wherever .yml is. --config-search=false (YOLOSEARCH_CONFIG_SEARCH=false) skips the default locations entirely.

A file nests keys under their sections:

yaml
server:
  listen: 0.0.0.0:9500
object:
  backend: s3
  s3:
    endpoint: minio:9000
    bucket: yolosearch
    path_style: true
cache:
  full_bytes: 8GiB
storage:
  mode: AUTO

Secrets

Four settings are read from the environment only. They have no flag, never appear in a file, and are never copied into a rendered command line or a Kubernetes custom-resource status.

Setting Environment
object.s3.access_key YOLOSEARCH_OBJECT_S3_ACCESS_KEY
object.s3.secret_key YOLOSEARCH_OBJECT_S3_SECRET_KEY
object.s3.session_token YOLOSEARCH_OBJECT_S3_SESSION_TOKEN
embedding.credential YOLOSEARCH_EMBEDDING_CREDENTIAL

Leaving every S3 credential setting empty lets the ambient credential chain resolve and refresh one. Supplying an expiring access and secret pair without object.s3.session_token is rejected by the provider.

Two shortcuts

Two settings exist only to derive others, and both apply their derivation only where nothing more specific was set.

Setting Derives
server.data_dir object.backend=fs, object.dir, cache.dir, ingest.dir, and config.file beneath one directory
object.source object.backend, the bucket, prefix and root, the index when the URL names one, and server.read_only

The settings

Server

The listener, identity, roles, and the request size limits.

Key Kind Scope Default Flag Meaning
server.data_dir string startup — --data-dir (--server-data-dir) Developer shortcut: derives object.backend=fs, object.dir, cache.dir, ingest.dir, and config.file beneath one directory where nothing more specific is set.
server.grace_period duration startup 5s --grace-period (--server-grace-period) Graceful shutdown period.
server.listen string startup 127.0.0.1:9500 --listen (--server-listen) gRPC listen host:port serve and node bind; the default is the address the client verbs dial (client.server).
server.max_receive_bytes bytes size startup 4MiB --max-receive-bytes (--server-max-receive-bytes) Maximum gRPC request bytes (at least 64KiB).
server.max_send_bytes bytes size startup 4MiB --max-send-bytes (--server-max-send-bytes) Maximum gRPC response bytes (at least 64KiB, one result frame).
server.node_id string startup — --node-id (--server-node-id) Node identity; empty defaults to the bound listen address.
server.read_only bool startup false --read-only (--server-read-only) Refuse every object-store write for this process's lifetime.
server.roles string list startup — --roles (--server-roles) Comma-separated roles for node: coordinator, worker, merger, aggregator, compactor, router, builder, publisher.
server.zone string startup default --zone (--server-zone) Placement zone this node advertises in.

Logging

Key Kind Scope Default Flag Meaning
log.format enum startup text --log-format Log line format.
log.level enum node-runtime info --log-level Minimum level written to stderr.

Debug

Key Kind Scope Default Flag Meaning
debug.pprof_listen string startup — --pprof-listen (--debug-pprof-listen) host:port serving net/http/pprof profiles; empty disables it.

Observability

Key Kind Scope Default Flag Meaning
observability.metrics_listen string startup :9550 --metrics-listen (--observability-metrics-listen) host:port serving Prometheus exposition at /metrics; empty disables it.

Object store

The authoritative store. The three S3 credential settings are read from the environment only — never a flag, never a file.

Key Kind Scope Default Flag Meaning
object.backend enum startup fs --object-backend Object store backend.
object.dir string startup — --object-dir Filesystem object-store directory; required for the fs backend.
object.root string startup indexes --object-root Object key root.
object.s3.access_key string startup — env only S3 access key.
object.s3.anonymous bool startup false --s3-anonymous (--object-s3-anonymous) Sign no requests at all, for a bucket that grants public reads.
object.s3.bucket string startup — --s3-bucket (--object-s3-bucket) S3 bucket; required for the s3 backend.
object.s3.endpoint string startup — --s3-endpoint (--object-s3-endpoint) S3 endpoint host:port; required for the s3 backend.
object.s3.path_style bool startup false --s3-path-style (--object-s3-path-style) Use path-style S3 addressing.
object.s3.prefix string startup — --s3-prefix (--object-s3-prefix) S3 key prefix.
object.s3.region string startup — --s3-region (--object-s3-region) S3 region.
object.s3.secret_key string startup — env only S3 secret key.
object.s3.session_token string startup — env only S3 session token accompanying a temporary access/secret pair, as issued by SSO, an assumed role, or a web identity.
object.s3.use_ssl bool startup true --s3-use-ssl (--object-s3-use-ssl) Use TLS to the S3 endpoint.
object.source string startup — --source (--object-source) Dataset URL to attach read-only, such as s3://bucket/root/ for a whole root or s3://bucket/root/indexes/name/ for one index.

Index selection

Which index a catalog-bound role serves, and which generation it pins.

Key Kind Scope Default Flag Meaning
index.generation string startup — --generation (--index-generation) Exact generation to pin, or empty for the latest.
index.name string startup — --index (--index-name) Index name for catalog-bound serve, worker, coordinator, compactor, router, builder, and publisher roles.

Configuration discovery

Where configuration files come from and whether they are watched.

Key Kind Scope Default Flag Meaning
config.dir string startup — --config-dir Directory whose *.yml and *.yaml files are layered in name order after the default locations and before config.file.
config.file string startup — --config (--config-file) YAML configuration file layered last among files.
config.search bool startup true --config-search Probe /etc/yolosearch, $XDG_CONFIG_HOME/yolosearch (default ~/.config/yolosearch), and ./yolosearch.yml at startup.
config.watch bool startup true --config-watch Reload the discovered configuration files when any of them changes.

Client

Used by the client verbs; ignored by a server process.

Key Kind Scope Default Flag Meaning
client.json bool startup false --json (--client-json) Emit JSON instead of tables.
client.quiet bool startup false --quiet (--client-quiet) Suppress progress output.
client.server string startup 127.0.0.1:9500 --server (--client-server) Server address the client verbs dial.
client.timeout duration startup 30s --timeout (--client-timeout) Client request timeout.

Cache budgets

Four tiers: two on local disk, two in process memory. All of them are startup settings except the scrubber.

Key Kind Scope Default Flag Meaning
cache.block_bytes bytes size startup 2GiB --cache-block-bytes Block cache byte budget.
cache.block_entries int64 startup 1048576 --cache-block-entries Block cache entry budget.
cache.dir string startup — --cache-dir Disposable local cache directory; symlinks in its path are resolved once at startup and the cache then anchors there without following any.
cache.full_bytes bytes size startup 8GiB --cache-full-bytes Full-segment cache byte budget.
cache.full_entries int64 startup 1024 --cache-full-entries Full-segment cache entry budget.
cache.read_block_bytes bytes size startup 512MiB --cache-read-block-bytes Process-wide decoded WavesDB block-cache byte budget shared by immutable segment readers.
cache.read_open_files int64 startup 1024 --cache-read-open-files Process-wide open WavesDB table-file limit shared by immutable segment readers.
cache.read_open_readers int64 startup 1024 --cache-read-open-readers Process-wide decoded WavesDB table-reader count limit.
cache.read_reader_bytes bytes size startup 2GiB --cache-read-reader-bytes Process-wide WavesDB table index and Bloom-filter byte budget.
cache.scrub_entries int64 node-runtime 4 --cache-scrub-entries How many cached full segments one scrubber pass re-reads.
cache.scrub_interval duration node-runtime 5m --cache-scrub-interval How often the background scrubber re-reads cached full segments and checks them against their commits.

Storage policy

What AUTO weighs when it chooses between hydration and remote blocks.

Key Kind Scope Default Flag Meaning
storage.hydrate_throughput_floor bytes size node-runtime 128MiB --hydrate-throughput-floor (--storage-hydrate-throughput-floor) Lowest believable hydration throughput in bytes per second.
storage.hysteresis_denominator uint64 node-runtime 4 --hysteresis-denominator (--storage-hysteresis-denominator) Hysteresis denominator; must be below the numerator.
storage.hysteresis_numerator uint64 node-runtime 5 --hysteresis-numerator (--storage-hysteresis-numerator) Hysteresis numerator; must exceed the denominator.
storage.mode enum startup AUTO --mode (--storage-mode) Storage mode: HYDRATE_FULL, REMOTE_BLOCKS, or AUTO (AUTO is refused by the checkpoint-bound serve).
storage.remote_latency_floor duration node-runtime 2ms --remote-latency-floor (--storage-remote-latency-floor) Lowest believable remote request latency.
storage.remote_throughput_floor bytes size node-runtime 64MiB --remote-throughput-floor (--storage-remote-throughput-floor) Lowest believable remote throughput in bytes per second.
storage.scan_threshold_permille uint64 node-runtime 200 --scan-threshold-permille (--storage-scan-threshold-permille) Scan fraction above which AUTO hydrates.

Fleet topology

Who a role talks to. Every one of these is a startup setting.

Key Kind Scope Default Flag Meaning
fleet.admin_fleet string list startup — --admin-fleet (--fleet-admin-fleet) Node host:port endpoints StreamFleetStats fans in; empty refuses the fleet stream.
fleet.aggregators string list startup — --aggregators (--fleet-aggregators) Aggregator host:port endpoints.
fleet.builders string list startup — --builders (--fleet-builders) Builder host:port endpoints the router polls and rendezvous-routes batches across.
fleet.fallback_workers string list startup — --fallback-workers (--fleet-fallback-workers) Worker host:port endpoints: the dispatch universe and the cache-oblivious fallback.
fleet.fan_in int64 startup 0 --fan-in (--fleet-fan-in) Children per merge node in coordinator plans; zero means the planner's default, otherwise at least 2.
fleet.lane_slots string startup interactive=4,streaming=2 --lane-slots (--fleet-lane-slots) Per-lane worker slot pools, lane=count.
fleet.mergers string list startup — --mergers (--fleet-mergers) Merge host:port endpoints: the coordinator's merge tier, a merger's delegation peers.

Ingest

Admission limits on the router and the seal triggers on the builder.

Key Kind Scope Default Flag Meaning
ingest.burst_documents int64 node-runtime 100000 --ingest-burst-documents Per-index document tokens available for an ingest burst when the rate quota is enabled.
ingest.dir string startup — --ingest-dir Ingest spool/build directory for builders and scratch root for the dedicated compactor role.
ingest.documents_per_second int64 node-runtime 0 --ingest-documents-per-second Per-router, per-index document admission rate; zero disables the rate quota.
ingest.global_queue_bytes bytes size node-runtime 256MiB --ingest-global-queue-bytes Encoded ingest bytes all router sessions may hold while waiting for builders.
ingest.index_queue_bytes bytes size node-runtime 64MiB --ingest-index-queue-bytes Encoded ingest bytes one index may hold while waiting for builders.
ingest.max_batch_bytes bytes size node-runtime 4MiB --ingest-max-batch-bytes Largest accepted ingest batch.
ingest.max_document_bytes bytes size node-runtime 16MiB --ingest-max-document-bytes Largest accepted document.
ingest.seal_age duration node-runtime 30s --ingest-seal-age Age at which an open build seals.
ingest.seal_bytes bytes size node-runtime 0 --ingest-seal-bytes Spooled bytes at which an open build seals; zero derives it as a quarter of builder.sort_memory_bytes.
ingest.seal_documents int64 node-runtime 100000 --ingest-seal-documents Spooled documents at which an open build seals.

Builder

One build's accounted budget and the derivations that hang off it.

Key Kind Scope Default Flag Meaning
builder.analysis_batch_documents int64 node-runtime 0 --analysis-batch-documents (--builder-analysis-batch-documents) Documents handed to the analysis workers at once; zero derives sixteen per worker.
builder.analysis_memory_bytes bytes size node-runtime 0 --analysis-memory-bytes (--builder-analysis-memory-bytes) The share of builder.sort_memory_bytes reserved for documents in flight through analysis; zero derives a thirty-second of it, clamped to between 64KiB and 32MiB and never more than a quarter of what the public-id and docvalue spools leave.
builder.analysis_workers int64 node-runtime 0 --analysis-workers (--builder-analysis-workers) Goroutines tokenising documents inside one build; zero derives GOMAXPROCS, bounded at eight.
builder.blob_dictionary bool node-runtime true --blob-dictionary (--builder-blob-dictionary) Compress stored values against a dictionary trained per blob file.
builder.blob_zstd_level int64 node-runtime 0 --blob-zstd-level (--builder-blob-zstd-level) Zstd effort for stored values; zero keeps the storage default (7).
builder.build_concurrency int64 node-runtime 0 --build-concurrency (--builder-build-concurrency) Sealed builds that may run through the seal pipeline at once; zero derives one per CPU, bounded at twelve.
builder.catalog_publication enum startup direct --builder-catalog-publication Catalog writer mode: direct is the single-node compatibility path; external stops after commit markers for a lease-fenced publisher role.
builder.dedupe_index_identities int64 node-runtime 0 --dedupe-index-identities (--builder-dedupe-index-identities) Distinct document keys one open spool's dedupe index may hold before it gives up; zero derives 1048576.
builder.lexical_blob_threshold bytes size node-runtime 0 --lexical-blob-threshold (--builder-lexical-blob-threshold) Size at which a posting, position or term value is stored in a blob file rather than inline in the key log; zero keeps the default of 64KiB.
builder.lexical_block_compression string node-runtime — --lexical-block-compression (--builder-lexical-block-compression) Codec the term, posting and position families compress key-log blocks with: none, snappy, lz4, lz4fast or zstd.
builder.max_document_working_bytes bytes size node-runtime 0 --max-document-working-bytes (--builder-max-document-working-bytes) What one document may use beyond the partition budget while it is being analyzed; zero derives 64MiB, or a quarter of builder.sort_memory_bytes when that is smaller.
builder.max_queued_builds int64 node-runtime 0 --max-queued-builds (--builder-max-queued-builds) Sealed builds that may wait for or run in the pipeline before ingest is throttled; zero derives it as four times builder.build_concurrency.
builder.max_token_bytes bytes size node-runtime 64KiB --max-token-bytes (--builder-max-token-bytes) Maximum analyzed token size.
builder.merge_fan_in int64 node-runtime 0 --merge-fan-in (--builder-merge-fan-in) Spilled mini-runs merged in one pass; zero derives as many as an eighth of the partition budget affords at builder.run_page_bytes plus 512 bytes of reader overhead each, capped at sixty-four and floored at two.
builder.output_format_version uint64 startup 0 --builder-output-format-version Segment format emitted by builders and compactors; zero selects this binary's current format.
builder.publish_verification string node-runtime checksum --publish-verification (--builder-publish-verification) How a published segment is confirmed: checksum, sample, or readback.
builder.run_page_bytes bytes size node-runtime 0 --run-page-bytes (--builder-run-page-bytes) Read-ahead page one spilled mini-run is buffered in during the final merge; zero derives 64KiB, shrinking it when an eighth of the partition budget cannot hold sixty-four such pages.
builder.sort_memory_bytes bytes size node-runtime 256MiB --sort-memory-bytes (--builder-sort-memory-bytes) Total accounted builder budget: one ledger every part of a build charges against, and the setting the other builder budgets derive from.

Catalog publisher

Lease-fenced catalog publication.

Key Kind Scope Default Flag Meaning
publisher.announce_interval duration node-runtime 15s --publisher-announce-interval Requested commit-marker publication cadence; the daemon floors it at follower.poll_interval and 15 seconds.
publisher.lease_ttl duration startup 30s --publisher-lease-ttl Startup-fixed object-store lease lifetime for the catalog publisher; renewal runs at one third of this value.

Catalog follower

How a node tracks the catalog and how long it keeps retired engines.

Key Kind Scope Default Flag Meaning
follower.discovery_interval duration node-runtime 30s --follower-discovery-interval How often a root attachment looks for indexes that appeared or disappeared under it.
follower.generation_overlap duration node-runtime 30s --follower-generation-overlap Maximum age of an unseen catalog generation a worker may resolve on demand; in-flight references may keep its engine beyond this window.
follower.max_staleness duration node-runtime 5m --follower-max-staleness How long a follower may go without confirming its installed generation is still current before it refuses new queries.
follower.poll_interval duration node-runtime 2s --follower-poll-interval How often a node checks the catalog's latest pointer.
follower.retired_generation_grace duration node-runtime 30s --follower-retired-generation-grace How long a superseded generation's engine stays open after its last query.

Compaction

Size-tiered physical merging of active segments.

Key Kind Scope Default Flag Meaning
compaction.enabled bool node-runtime false --compaction-enabled Run single-flight size-tiered compaction inside all-in-one serve.
compaction.interval duration node-runtime 1m --compaction-interval Interval between background compaction eligibility checks.
compaction.max_active_segments int64 node-runtime 16 --compaction-max-active-segments Active searchable segment fan-out above which the scheduler may compact.
compaction.max_inputs int64 node-runtime 8 --compaction-max-inputs Maximum inputs in one compaction job; jobs are always single-flight.
compaction.max_output_bytes bytes size node-runtime 4GiB --compaction-max-output-bytes Maximum summed input bytes admitted to one compaction proposal.
compaction.max_size_ratio uint64 node-runtime 2 --compaction-max-size-ratio Largest size ratio allowed between inputs in one tier.
compaction.min_inputs int64 node-runtime 4 --compaction-min-inputs Minimum adjacent similarly-sized inputs in one compaction job.
compaction.recent_delta int64 node-runtime 4 --compaction-recent-delta Newest active segments left uncompacted as an ingest delta tier.
compaction.target_bytes bytes size node-runtime 512MiB --compaction-target-bytes Approximate input-byte target for one size-tiered compaction group.

Garbage collection

Two-phase object reclamation. Both phases are off by default.

Key Kind Scope Default Flag Meaning
gc.grace duration node-runtime 1h --gc-grace Additional safety margin added to every scheduled GC reachability horizon.
gc.interval duration node-runtime 1h --gc-interval Cadence at which the dedicated compactor role writes a GC proposal and considers a quarantined older proposal.
gc.maximum_stream_lifetime duration node-runtime 1h --gc-maximum-stream-lifetime Longest query-stream lifetime protected when marking superseded generations for scheduled GC.
gc.minimum_upload_age duration node-runtime 24h --gc-minimum-upload-age Minimum age before an unreferenced object can enter a scheduled GC proposal.
gc.quarantine_age duration node-runtime 24h --gc-quarantine-age Minimum age of an immutable GC proposal before a fresh mark may authorize deleting its still-unreachable exact keys.
gc.retained_generations int64 node-runtime 2 --gc-retained-generations Historical catalog generations retained in addition to latest during scheduled GC.
gc.sweep_enabled bool node-runtime false --gc-sweep-enabled Allow the dedicated compactor role to delete freshly re-proven orphan objects after an immutable dry-run proposal passes quarantine.

Query limits

Server-side ceilings on what a request may ask for.

Key Kind Scope Default Flag Meaning
query.collapse_key_versions bool startup true --collapse-key-versions (--query-collapse-key-versions) Return one hit per document key, the copy with the greatest mutation version.
query.default_top_k uint64 node-runtime 10 --query-default-top-k top_k when a request names none.
query.max_ast_depth uint64 node-runtime 32 --query-max-ast-depth Deepest query nesting either grammar accepts.
query.max_results uint64 node-runtime 0 --query-max-results Ceiling on maximum_results per request; zero keeps the engine default.
query.phrase_gap_expansion_limit uint64 node-runtime 64 --query-phrase-gap-expansion-limit Most exact gap variants a {m,n} quantifier may expand to.
query.regex_max_expansions uint64 node-runtime 256 --query-regex-max-expansions Most dictionary terms a regex or prefix may expand to before the query is refused.

Approximate tail

The bounded approximate lexical tail. Off by default.

Key Kind Scope Default Flag Meaning
tail.impact_enabled bool node-runtime false --tail-impact-enabled Persist score-banded approximate-tail data.
tail.impact_maximum_bands uint64 node-runtime 64 --tail-impact-maximum-bands Maximum score-impact bands persisted for one term.
tail.impact_target_documents uint64 node-runtime 4096 --tail-impact-target-documents Target postings per persisted impact run.
tail.maximum_ordering_error float64 node-runtime 0 --tail-maximum-ordering-error Server ceiling on accepted approximate-tail score-ordering error; zero requires exact fallback.

Vectors

IVF-PQ construction and per-request candidate generation.

Key Kind Scope Default Flag Meaning
vector.bits_per_code uint64 node-runtime 8 --vector-bits-per-code Bits in each PQ subquantizer code.
vector.build_memory_bytes bytes size node-runtime 0 --vector-build-memory-bytes Per-build vector training and assignment memory; zero derives a bounded share of builder.sort_memory_bytes.
vector.centroids uint64 node-runtime 0 --vector-centroids IVF coarse centroid count; zero derives it deterministically from population.
vector.flat_threshold uint64 node-runtime 10000 --vector-flat-threshold Per-segment vector population at or below which candidate generation stays exhaustive.
vector.list_block_documents uint64 node-runtime 0 --vector-list-block-documents Target vector entries per IVF-list block; zero follows the document-value block geometry.
vector.maximum_training_vectors uint64 node-runtime 4096 --vector-maximum-training-vectors Maximum deterministic training samples retained per vector field.
vector.query_candidate_multiplier uint64 node-runtime 10 --vector-query-candidate-multiplier Default ANN candidates as a multiple of requested top_k.
vector.query_default_probes uint64 node-runtime 8 --vector-query-default-probes IVF coarse lists probed when a vector request does not specify probes.
vector.query_maximum_candidates uint64 node-runtime 100000 --vector-query-maximum-candidates Hard per-request candidate generation and exact-rerank cap.
vector.query_maximum_probes uint64 node-runtime 1024 --vector-query-maximum-probes Hard per-request IVF probe cap.
vector.query_memory_bytes bytes size node-runtime 256MiB --vector-query-memory-bytes Per-process admission budget for decoded vector-query working sets.
vector.subquantizers uint64 node-runtime 0 --vector-subquantizers PQ subquantizer count; zero derives a geometry compatible with each vector field's dimension.
vector.training_iterations uint64 node-runtime 20 --vector-training-iterations Maximum deterministic k-means iterations during IVF-PQ training.

Embedding

The four embedding providers, their limits, and the model cache.

Key Kind Scope Default Flag Meaning
embedding.credential string startup — env only Optional external embedding bearer token.
embedding.external_allow_http bool startup false --embedding-external-allow-http Allow plain HTTP external embedding endpoints for trusted development networks.
embedding.external_batch_size int64 startup 128 --embedding-external-batch-size Maximum texts in one external embedding request.
embedding.external_concurrency int64 startup 8 --embedding-external-concurrency Concurrent external embedding requests per process.
embedding.external_max_retry_after duration startup 2s --embedding-external-max-retry-after Largest Retry-After delay accepted from an external embedding endpoint.
embedding.external_request_bytes bytes size startup 8MiB --embedding-external-request-bytes Maximum encoded external embedding request bytes.
embedding.external_response_bytes bytes size startup 64MiB --embedding-external-response-bytes Maximum external embedding response bytes read before JSON decoding.
embedding.external_retries int64 startup 2 --embedding-external-retries Retry attempts after the first retryable external embedding failure.
embedding.external_retry_base duration startup 50ms --embedding-external-retry-base Base exponential backoff for external embedding retries.
embedding.external_timeout duration startup 30s --embedding-external-timeout Deadline for one external embedding HTTP attempt sequence.
embedding.grpc_allow_insecure bool startup false --embedding-grpc-allow-insecure Allow plaintext gRPC embedding endpoints on trusted internal networks.
embedding.grpc_batch_size int64 startup 128 --embedding-grpc-batch-size Maximum texts in one gRPC embedding request.
embedding.grpc_concurrency int64 startup 8 --embedding-grpc-concurrency Concurrent gRPC embedding requests per process.
embedding.grpc_request_bytes bytes size startup 8MiB --embedding-grpc-request-bytes Maximum encoded gRPC embedding request bytes.
embedding.grpc_response_bytes bytes size startup 64MiB --embedding-grpc-response-bytes Maximum encoded gRPC embedding response bytes.
embedding.grpc_timeout duration startup 30s --embedding-grpc-timeout Deadline for one gRPC embedding request.
embedding.grpc_work_class enum startup auto --embedding-grpc-work-class gRPC embedding scheduler class; auto maps queries to interactive and indexing to bulk.
embedding.internal_batch_size int64 startup 32 --embedding-internal-batch-size Maximum texts in one internal embedding batch.
embedding.internal_concurrency int64 startup 2 --embedding-internal-concurrency Concurrent pure-Go internal embedding batches.
embedding.internal_enabled bool startup false --embedding-internal-enabled Enable the pure-Go internal embedding runtime.
embedding.model_cache_bytes bytes size startup 10GiB --embedding-model-cache-bytes Maximum installed bytes in the internal-model cache.
embedding.model_cache_dir string startup — --embedding-model-cache-dir Checksum-addressed internal-model cache directory.
embedding.model_cache_packages int64 startup 8 --embedding-model-cache-packages Maximum installed internal-model packages.
embedding.model_download_allow_http bool startup false --embedding-model-download-allow-http Allow plain HTTP model manifests and artifacts for trusted development networks.
embedding.model_download_concurrency int64 startup 2 --embedding-model-download-concurrency Concurrent verified internal-model artifact downloads.
embedding.model_download_timeout duration startup 10m --embedding-model-download-timeout Deadline for one internal-model package installation.
embedding.model_manifest_bytes bytes size startup 1MiB --embedding-model-manifest-bytes Maximum bytes in one internal-model manifest.
embedding.model_package_bytes bytes size startup 4GiB --embedding-model-package-bytes Maximum bytes in one downloaded internal-model package.
embedding.query_cache_bytes bytes size startup 64MiB --embedding-query-cache-bytes Maximum float-vector bytes retained by the text-query embedding cache.
embedding.query_cache_entries int64 startup 4096 --embedding-query-cache-entries Maximum completed text-query embeddings retained per process.
embedding.query_cache_ttl duration startup 10m --embedding-query-cache-ttl Lifetime of a completed text-query embedding cache entry.

Format

Compile-time and display-only.

Key Kind Scope Default Flag Meaning
format.minimum_reader_version uint64 compile-time 1 — Oldest segment format this binary reads.
format.segment_version uint64 compile-time 5 — Segment format this binary writes.

Reload behavior

config.watch defaults to true: the discovered configuration files are reloaded when any of them changes. A reload that is refused leaves the previous configuration in place, and that refusal is visible in metrics before it is visible in logs:

Metric Meaning
yolosearch_config_reloads_total Reloads that were applied
yolosearch_config_reload_failures_total Reloads that were refused; the previous configuration stayed

Next