Skip to content
Blog Releases llms.txt
GitHub

Configuration

Config section: search (SearchConfig). Env prefix: LEX_SEARCH__.

KeyTypeDefaultEnv VarDescription
enabledboolTrueLEX_SEARCH__ENABLEDEnable the search subsystem
backend_typeBackendTypememoryLEX_SEARCH__BACKEND_TYPESearch backend provider
timeoutfloat30.0LEX_SEARCH__TIMEOUTDefault request timeout (seconds)
databasestr | NoneNoneLEX_SEARCH__DATABASENamed database for DB-backed backends
backendslist[NamedSearchConfig][]—Multi-backend declarations
KeyTypeDefaultEnv VarDescription
query.strategystr"fuzzy"LEX_SEARCH__QUERY__STRATEGYSearch strategy
query.default_limitint20LEX_SEARCH__QUERY__DEFAULT_LIMITDefault results per page
query.max_limitint100LEX_SEARCH__QUERY__MAX_LIMITMaximum results allowed
query.enable_highlightingboolTrueLEX_SEARCH__QUERY__ENABLE_HIGHLIGHTINGEnable search term highlighting
query.enable_facetingboolTrueLEX_SEARCH__QUERY__ENABLE_FACETINGEnable faceted search
query.enable_aggregationsboolFalseLEX_SEARCH__QUERY__ENABLE_AGGREGATIONSEnable result aggregations
query.fuzzy_thresholdfloat0.8LEX_SEARCH__QUERY__FUZZY_THRESHOLDFuzzy matching threshold
KeyTypeDefaultEnv VarDescription
operations.max_retriesint3LEX_SEARCH__OPERATIONS__MAX_RETRIESMax retry attempts
operations.retry_backofffloat0.5LEX_SEARCH__OPERATIONS__RETRY_BACKOFFRetry backoff multiplier
operations.request_timeoutfloat30.0LEX_SEARCH__OPERATIONS__REQUEST_TIMEOUTRequest timeout (seconds)
operations.bulk_chunk_sizeint500LEX_SEARCH__OPERATIONS__BULK_CHUNK_SIZEBulk request chunk size
KeyTypeDefaultEnv VarDescription
meilisearch.urlstr"http://localhost:7700"LEX_SEARCH__MEILISEARCH__URLMeiliSearch server URL
meilisearch.api_keySecretStr | NoneNoneLEX_SEARCH__MEILISEARCH__API_KEYAPI key
meilisearch.timeoutint30LEX_SEARCH__MEILISEARCH__TIMEOUTRequest timeout
meilisearch.max_connectionsint10LEX_SEARCH__MEILISEARCH__MAX_CONNECTIONSMax connections
meilisearch.typo_tolerance_enabledboolTrue—Enable typo tolerance
meilisearch.searchable_attributeslist[str]["title","name","description","content","text","body"]—Fields to search
meilisearch.filterable_attributeslist[str][]—Attribute-based filtering
meilisearch.sortable_attributeslist[str]["created_at","updated_at"]—Attribute-based sorting
KeyTypeDefaultEnv VarDescription
elasticsearch.hostslist[str]["http://localhost:9200"]LEX_SEARCH__ELASTICSEARCH__HOSTSElasticsearch hosts
elasticsearch.api_keySecretStr | NoneNoneLEX_SEARCH__ELASTICSEARCH__API_KEYAPI key
elasticsearch.usernamestr | NoneNoneLEX_SEARCH__ELASTICSEARCH__USERNAMEBasic auth username
elasticsearch.passwordSecretStr | NoneNoneLEX_SEARCH__ELASTICSEARCH__PASSWORDBasic auth password
elasticsearch.use_sslboolFalseLEX_SEARCH__ELASTICSEARCH__USE_SSLEnable SSL
elasticsearch.verify_certsboolTrue—Verify SSL certificates
elasticsearch.index_prefixstr"lexigram_search_"—Index name prefix
elasticsearch.number_of_shardsint1—Number of shards
elasticsearch.number_of_replicasint0—Number of replicas
KeyTypeDefaultEnv VarDescription
postgres.connection_stringSecretStr""LEX_SEARCH__POSTGRES__CONNECTION_STRINGConnection string
postgres.text_search_configstr"english"—Text search configuration
postgres.enable_trigramboolTrue—Enable pg_trgm extension
postgres.auto_create_tablesboolTrue—Auto-create search tables
KeyTypeDefaultEnv VarDescription
sqlite.db_pathstr":memory:"LEX_SEARCH__SQLITE__DB_PATHDatabase file path
sqlite.tokenizerstr"porter unicode61"—FTS5 tokenizer
sqlite.auto_create_tablesboolTrue—Auto-create FTS tables
KeyTypeDefaultEnv VarDescription
typesense.api_keySecretStr | NoneNoneLEX_SEARCH__TYPESENSE__API_KEYAPI key
typesense.nodeslist[dict][{"host":"localhost","port":"8108","protocol":"http"}]—Cluster nodes
typesense.connection_timeoutint30—Connection timeout
typesense.health_check_intervalint60—Health check interval
KeyTypeDefaultEnv VarDescription
opensearch.hostslist[str]["http://localhost:9200"]—OpenSearch hosts
opensearch.index_prefixstr"lexigram_search_"—Index name prefix
opensearch.usernamestr | NoneNone—Username
opensearch.passwordstr | NoneNone—Password
opensearch.use_sslboolFalse—Enable SSL
opensearch.verify_sslboolTrue—Verify SSL certificates
opensearch.timeoutint30—Request timeout
KeyTypeDefaultEnv VarDescription
mongo.connection_stringSecretStr""LEX_SEARCH__MONGO__CONNECTION_STRINGConnection string
mongo.database_namestr"search"—Database name
mongo.use_atlas_searchboolFalse—Use Atlas Search

NamedSearchConfig (for backends[] entries)

Section titled “NamedSearchConfig (for backends[] entries)”
KeyTypeDefaultDescription
namestr—Unique backend name (DI key)
primaryboolFalseAlso register under unnamed binding
backend_typeBackendTypememoryBackend for this entry
databasestr | NoneNoneNamed database reference
meilisearchMeiliSearchConfig | NoneNonePer-backend config
elasticsearchElasticsearchConfig | NoneNonePer-backend config
opensearchOpenSearchConfig | NoneNonePer-backend config
typesenseTypesenseConfig | NoneNonePer-backend config
postgresPostgresSearchConfig | NoneNonePer-backend config
mysqlMySQLSearchConfig | NoneNonePer-backend config
sqliteSQLiteSearchConfig | NoneNonePer-backend config
mongoMongoSearchConfig | NoneNonePer-backend config
search:
enabled: true
backend_type: meilisearch
timeout: 10.0
query:
strategy: fuzzy
default_limit: 20
enable_highlighting: true
fuzzy_threshold: 0.8
meilisearch:
url: http://localhost:7700
api_key: "${MEILI_API_KEY}"
operations:
max_retries: 3
bulk_chunk_size: 500
Terminal window
export LEX_SEARCH__BACKEND_TYPE=meilisearch
export LEX_SEARCH__TIMEOUT=10.0
export LEX_SEARCH__MEILISEARCH__URL=http://localhost:7700
export LEX_SEARCH__MEILISEARCH__API_KEY=sk-...
export LEX_SEARCH__QUERY__STRATEGY=fuzzy