Skip to content

Configuration

@nx/search đọc env từ process host (commerce). Nó định nghĩa key riêng (src/common/environments.ts) trên nền các Kafka key của @nx/core, cộng config embedding + pipeline backed bởi DB trong bảng Configuration.

1. Biến môi trường

Riêng cho search (EnvironmentKeys mở rộng core)

TênKiểuMặc địnhBắt buộcMô tả
APP_ENV_TYPESENSE_NODESstring (CSV)http:localhost:8108Nodes dạng protocol:host:port, phân tách bằng dấu phẩy. Không phải URL
APP_ENV_TYPESENSE_API_KEYstringxyzTypesense API key
APP_ENV_CDC_DLQ_TOPICstringnx.seller.cdc.dlqDead-letter topic cho message CDC fail
APP_ENV_CDC_CIRCUIT_BREAKER_ENABLEDboolean (string)falseBật Typesense health probe + pause consumer

Kafka / CDC consumer (kế thừa từ @nx/core)

TênKiểuMặc địnhMô tả
APP_ENV_KAFKA_BROKERSstring (CSV)localhost:19092Bootstrap brokers
APP_ENV_KAFKA_CLIENT_IDstringcommerce-cdc-consumerClient id CDC consumer
APP_ENV_KAFKA_GROUP_IDstringcommerce-cdc-groupConsumer group CDC
APP_ENV_KAFKA_SASL_ENABLEboolean (string)falseBật SASL
APP_ENV_KAFKA_SASL_MECHANISMstringSCRAM-SHA-512SASL mechanism (khi bật)
APP_ENV_KAFKA_SASL_USERNAMEstringSASL user (khi bật)
APP_ENV_KAFKA_SASL_PASSWORDstringSASL password (khi bật)

Các mặc định commerce-cdc-* phản ánh host hiện tại; chúng không hard-code cho một service "search".

2. Feature Flags

FlagMặc địnhMô tả
APP_ENV_CDC_CIRCUIT_BREAKER_ENABLEDfalseGate CDC circuit breaker (health probe + pause)
ISearchParams.disableSemanticSearchfalse (theo từng query)Bỏ trường embedding khỏi query_by → keyword nghiêm ngặt
Auto-embedding (embed.from)off trừ khi có config DBBật chỉ khi có config model embedding + collection có embeddingField/embeddingFields

3. Dữ liệu Seed

Không có PostgreSQL migration riêng. "Seeding" qua các script developer feed/backfill dữ liệu:

ScriptCommandActionIdempotent
scripts/data-feeder/index.tsbun run feed-data[:small|medium|large]Tạo dữ liệu giả, POST qua Commerce API (cần JWT)no (tạo dòng)
scripts/migrate-add-references.tsbun run migrate:references[:dry]Backfill trường relation/reference trong Typesenseyes
scripts/migrate-add-denorm-fields.tsbun run migrate:denorm[:dry]Backfill trường denormalized trong Typesenseyes

4. Lưu trữ Configuration (bảng Configuration)

Đọc bởi SearchConfigurationService khi bootstrap; fallback về DEFAULT_SEARCH_PIPELINE_CONFIG.

Configuration kindRead byBindsNotes
TYPESENSE_EMBEDDING_CONFIG (SystemConfigurations)ApplicationEmbeddingConfigurationComponentEMBEDDING_MODEL_CONFIGTùy chọn; vắng → search chỉ keyword
Config pipeline searchApplicationEmbeddingConfigurationComponentSEARCH_PIPELINE_CONFIGOverride partial merge lên defaults

Mặc định config pipeline (DEFAULT_SEARCH_PIPELINE_CONFIG)

GroupFieldMặc định
cdc.kafkaConsumermaxWaitTimeMs / maxBytes500 / 5 MB
cdc.batchingmaxBatchSize / flushIntervalMs200 / 2000
cdc.processingtypesenseBatchSize100
circuitBreakerprobeIntervalMs30 000
circuitBreakerquietWindowMsTypesense / quietWindowMsGoogle30 000 / 90 000
circuitBreakermaxOpenMs1 800 000 (30 phút)
lsnLookuppageSize250
searchcacheTtlSeconds5
searchpaginationDefaultLimit / paginationMaxLimit10 / 250

5. Trang liên quan

Proprietary and Confidential. Unauthorized copying, distribution, or use of this software is strictly prohibited.