elasticsearch.py 864 B

123456789101112131415161718192021222324252627
  1. from pydantic import Field
  2. from pydantic_settings import BaseSettings, SettingsConfigDict
  3. from typing import List
  4. class ElasticsearchConfig(BaseSettings):
  5. """Elasticsearch 配置"""
  6. hosts: List[str] = Field(default_factory=list)
  7. username: str = "elastic"
  8. password: str = ""
  9. index_name: str = "meta_articles_v1"
  10. cert_path: str = Field(
  11. default="app/core/config/cert/es_certs.crt", description="SSL 证书路径"
  12. )
  13. cert_content: str = Field(
  14. default="",
  15. description="SSL 证书内容 (base64 编码)",
  16. )
  17. # ES mappings 和 settings(从 elastic_search_mappings.py 迁移)
  18. mappings: dict = Field(default_factory=dict)
  19. settings: dict = Field(default_factory=dict)
  20. model_config = SettingsConfigDict(
  21. env_prefix="ES_", env_file=".env", case_sensitive=False, extra="ignore"
  22. )