Skip to content

Configuration

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

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 lỗi
APP_ENV_CDC_CIRCUIT_BREAKER_ENABLEDboolean (string)falseBật probe sức khoẻ Typesense + tạm dừng 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 của CDC consumer
APP_ENV_KAFKA_GROUP_IDstringcommerce-cdc-groupConsumer group của CDC
APP_ENV_KAFKA_SASL_ENABLEboolean (string)falseBật SASL
APP_ENV_KAFKA_SASL_MECHANISMstringSCRAM-SHA-512Cơ chế SASL (khi bật)
APP_ENV_KAFKA_SASL_USERNAMEstring-SASL user (khi bật)
APP_ENV_KAFKA_SASL_PASSWORDstring-SASL password (khi bật)

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

2. Feature Flags

FlagMặc địnhMô tả
APP_ENV_CDC_CIRCUIT_BREAKER_ENABLEDfalseKiểm soát CDC circuit breaker (probe sức khoẻ + tạm dừng)
ISearchParams.disableSemanticSearchfalse (theo từng query)Bỏ trường embedding khỏi query_by → thuần từ khoá
Auto-embedding (embed.from)tắt trừ khi có config trong DBChỉ bật khi có config model embedding + collection có embeddingField/embeddingFields

3. Dữ liệu Seed

Không có PostgreSQL migration riêng. "Seeding" thực hiện qua các script developer dùng để nạp/backfill dữ liệu:

ScriptLệnhHành độngIdempotent
scripts/migrate.tsbun run migrate[:apply]So sánh config collection đã đăng ký với Typesense đang chạy, PATCH các thay đổi trường chỉ-thêm
scripts/rebuild-collection.tsbun run migrate:rebuild[:apply]Dựng lại kiểu blue-green: tạo collection mới từ config, copy document, đổi alias nguyên tử
scripts/backfill-search.tsbun run backfill[:apply]Gửi tín hiệu incremental snapshot của Debezium để bù các dòng DB sẵn có vào CDC

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

Được SearchConfigurationService đọc khi bootstrap; nếu thiếu thì dùng DEFAULT_SEARCH_PIPELINE_CONFIG.

Loại configurationĐọc bởiBind tớiGhi chú
TYPESENSE_EMBEDDING_CONFIG (SystemConfigurations)ApplicationEmbeddingConfigurationComponentEMBEDDING_MODEL_CONFIGTuỳ chọn; nếu thiếu → chỉ tìm theo từ khoá
Config pipeline searchApplicationEmbeddingConfigurationComponentSEARCH_PIPELINE_CONFIGGhi đè một phần, gộp lên giá trị mặc định

Giá trị mặc định của config pipeline (DEFAULT_SEARCH_PIPELINE_CONFIG)

NhómTrườngMặ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.