Documentation: Valkey Search - Metrics and configurations

search_index_stats

Metric NameUnitDescription
search_number_of_attributesCountTotal attributes across all search indexes
search_number_of_indexesCountTotal number of search indexes
search_total_active_write_threadsCountActive writer threads (0 if suspended)
search_total_indexed_documentsCountTotal documents indexed across all indexes

search_indexing

Metric NameUnitDescription
search_background_indexing_statusStringBackground indexing status: IN_PROGRESS or NO_ACTIVITY

search_memory

Metric NameUnitDescription
search_index_reclaimable_memoryBytesMemory reclaimable after vector deletions
search_used_memory_bytesBytesTotal memory used by the module
search_used_memory_humanStringTotal memory used by the module (human readable)

search_query

Metric NameUnitDescription
search_failure_requests_countCountTotal failed query requests
search_hybrid_requests_countCountHybrid queries (vector and non-vector)
search_inline_filtering_requests_countCountQueries using inline filtering
search_nonvector_requests_countCountExclusively non-vector search queries
search_prefiltering_requests_countCountQueries using pre-filtering
search_result_record_dropped_countCountRecords dropped when search results exceed limits
search_successful_requests_countCountTotal successful query requests
search_vector_requests_countCountQuery requests that include a vector component

search_rdb

Metric NameUnitDescription
search_rdb_load_failure_cntCountFailed RDB load operations
search_rdb_load_success_cntCountSuccessful RDB load operations
search_rdb_save_failure_cntCountFailed RDB save operations
search_rdb_save_success_cntCountSuccessful RDB save operations

search_string_interning

Metric NameUnitDescription
search_string_interning_store_sizeCountUnique strings in the interning store

search_thread-pool

Metric NameUnitDescription
search_query_queue_sizeCountCurrent reader thread pool queue size
search_reader_resumed_cntCountTimes the reader thread pool was resumed
search_used_read_cpuDecimal fractionsAverage CPU used by reader threads (-1 if unavailable)
search_used_write_cpuDecimal fractionsAverage CPU used by writer threads (-1 if unavailable)
search_worker_pool_suspend_cntCountTimes the worker thread pool was suspended
search_writer_queue_sizeCountCurrent writer thread pool queue size
search_writer_resumed_cntCountTimes the writer thread pool was resumed
search_writer_suspension_expired_cntCountTimes writer suspension expired due to timeout

search_vector_externing

Metric NameUnitDescription
search_vector_externing_deferred_entry_cntCountDeferred entries in vector externalization
search_vector_externing_entry_countCountTotal entries in the vector externalizer
search_vector_externing_generated_value_cntCountGenerated values during vector externalization
search_vector_externing_hash_extern_errorsCountErrors during hash externalization
search_vector_externing_lru_promote_cntCountLRU promotions in vector externalization
search_vector_externing_num_lru_entriesCountEntries in the vector externalizer LRU cache

search_latency

Metric NameUnitDescription
search_flat_vector_index_search_latency_usecMicrosecondsLatency distribution for flat vector index searches
search_hnsw_vector_index_search_latency_usecMicrosecondsLatency distribution for HNSW vector index searches

search_coordinator

These metrics are only available when cluster mode is enabled.

Metric NameUnitDescription
search_coordinator_bytes_inBytesTotal incoming gRPC response bytes from remote nodes
search_coordinator_bytes_outBytesTotal outgoing gRPC request bytes to remote nodes
search_coordinator_client_get_global_metadata_failure_countCountFailed client requests to get global metadata
search_coordinator_client_get_global_metadata_failure_latency_usecMicrosecondsLatency for failed client metadata requests
search_coordinator_client_get_global_metadata_success_countCountSuccessful client requests to get global metadata
search_coordinator_client_get_global_metadata_success_latency_usecMicrosecondsLatency for successful client metadata requests
search_coordinator_client_search_index_partition_failure_countCountFailed client searches on index partitions
search_coordinator_client_search_index_partition_failure_latency_usecMicrosecondsLatency for failed partition searches
search_coordinator_client_search_index_partition_success_countCountSuccessful client searches on index partitions
search_coordinator_client_search_index_partition_success_latency_usecMicrosecondsLatency for successful partition searches
search_coordinator_server_get_global_metadata_failure_countCountFailed server requests to get global metadata
search_coordinator_server_get_global_metadata_success_countCountSuccessful server requests to get global metadata
search_coordinator_server_get_global_metadata_failure_latency_usecMicrosecondsLatency for failed server metadata requests
search_coordinator_server_get_global_metadata_success_latency_usecMicrosecondsLatency for successful server metadata requests
search_coordinator_server_listening_portPortPort the coordinator server is listening on
search_coordinator_server_search_index_partition_failure_countCountFailed server searches on index partitions
search_coordinator_server_search_index_partition_failure_latency_usecMicrosecondsLatency for failed server partition searches
search_coordinator_server_search_index_partition_success_countCountSuccessful server searches on index partitions
search_coordinator_server_search_index_partition_success_latency_usecMicrosecondsLatency for successful server partition searches
search_coordinator_threads_cpu_time_secSecondsCumulative CPU time consumed by coordinator (gRPC) threads

Configurations

The search module uses the Valkey configuration mechanism. Thus each of the named configuration below can be set on the MODULE LODEX command OR via the CONFIG SET command.

NameTypeDefault ValueDescription
search.query-string-bytesNumber10240Maximum allowable length of the query string for FT.SEARCH or FT.AGGREGATE commands
search.hnsw-block-sizeNumber10240Number of vectors of space to add to HNSW index size when additional space required.
search.reader-threadsNumberPhysical core countReader thread pool size; dynamically resizes pool on modification
search.writer-threadsNumberPhysical core countWriter thread pool size; dynamically resizes pool on modification
search.utility-threadsNumber1Utility thread pool size; dynamically resizes pool on modification
search.max-worker-suspension-secsNumber60Controls how long the worker thread pool quiescing around a fork. Values > 0 are resumption timeouts if a fork runs too long. Values <=0 mean no quiescing.
search.skip-rdb-loadBooleanfalseWhen enabled, loads index schemas from the RDB but ignores all stored index content. This initializes empty, functional indexes that are then repopulated from the underlying data source. Use this to ensure a clean index state or to recover from corrupted index.
search.skip-corrupted-internal-update-entriesBooleanfalseSkip corrupted AOF entries during internal updates. May be useful for recovering from a corrupted AOF file.
search.log-levelEnumfrom coreControls module log level verbosity: "debug", "verbose", "notice" or "warning". Default value is to fetch the log level from the core at startup.
search.enable-partial-resultsBooleantrueDefault option for delivering partial results when errors such as timeout occur. This applies a default behavior on commands which can be explicitly overridden by FT.INFO/FT.SEARCH commands using the SOMESHARDS (for partial results) option and the ALLSHARDS (for complete results) option.
search.enable-consistent-resultsBooleanfalseDefault option for delivering consistent results when errors such as timeout occur. This applies a default behavior on commands which can be explicitly overridden by FT.INFO/FT.SEARCH commands using the CONSISTENT/INCONSISTENT option.
search.search-result-background-cleanupBooleanfalseEnable search result cleanup on background thread
search.high-priority-weightNumber100Fairness for high priority tasks in thread pools [0..100].
search.local-fanout-queue-wait-thresholdNumber50When this value is less than the average read queue wait time (in milliSeconds) the local node is preferred in a fanout operation.
search.thread-pool-wait-time-samplesNumber100Sample queue size for thread pool wait time tracking
search.tag-min-prefix-lengthNumber2Minimum number of characters required before trailing * in TAG wildcard queries (length excludes *)
search.max-term-expansionsNumber200Maximum number of words to search in text operations (prefix, suffix, fuzzy) to limit memory usage
search.search-result-buffer-multiplierString1.5Multiplier for search result buffer size to handle rapid data changes. This ensures results are not dropped when concurrent mutations render in-flight data invalid before the response is sent.
search.drain-mutation-queue-on-saveBooleanfalseDrain the mutation queue before RDB save.
search.query-string-depthNumber1000Controls the depth of the query string parsing from the FT.SEARCH cmd
search.query-string-terms-countNumber1000Controls the size of the query string parsing from the FT.SEARCH cmd (number of nodes in predicate tree)
search.fuzzy-max-distanceNumber3Controls the maximum allowed edit distance for fuzzy search queries
search.max-vector-knnNumber10000Controls the max KNN parameter for vector search
search.proximity-inorder-compat-modeBooleanfalseEnables / disables the overlap violation check logic in Proximity searches when INORDER is enabled. Use this to allow overlapping intersection blocks within the query string.
search.max-prefixesNumber8Controls the max number of prefixes per index
search.max-tag-field-lengthNumber256Controls the max length of a tag field
search.max-numeric-field-lengthNumber128Controls the max length of a numeric field
search.max-vector-attributesNumber1000Controls the max number of attributes per index
search.max-vector-dimensionsNumber32768Controls the max dimensions for vector indices
search.max-vector-mNumber2000000Controls the max M parameter for HNSW algorithm
search.max-vector-ef-constructionNumber1000000Controls the max EF construction parameter for HNSW algorithm
search.max-vector-ef-runtimeNumber1000000Controls the max EF runtime parameter for HNSW algorithm
search.default-timeout-msNumber50000Controls the default timeout in milliseconds for FT.SEARCH
search.max-search-result-record-sizeNumber5242880Controls the max content size for a record in the search response
search.max-search-result-fields-countNumber500Controls the max number of fields in the content of the search response
search.backfill-batch-sizeNumber10240Controls the batch size for backfilling indexes
search.coordinator-query-timeout-secsNumber120Controls the gRPC deadline timeout (in seconds) for distributed coordinator query operations.
search.max-indexesNumber1000Controls the maximum number of search indexes that can be created in the system
search.async-fanout-thresholdNumber30Controls the threshold for async fanout operations (minimum number of targets to use async)
search.max-nonvector-search-results-fetchedNumber100000Controls the maximum number of results to fetch in background threads before content fetching on non-vector (numeric/tag/text) query paths
search.max-attributesNumber1000Controls the max number of attributes per index
search.cluster-map-expiration-msNumber250Controls how long (in milliseconds) the coordinator caches the cluster topology map before refreshing it from the Valkey cluster.
search.max-mutation-queue-size-on-restoreNumber10000Controls the maximum mutation queue size during RDB load. If the queue exceeds this threshold, the restore process yields to the main thread, allowing the queue to be processed before continuing ingestion. This prevents excessive memory overhead.