| 1234567891011121314151617181920212223242526272829303132 |
- from pydantic import Field
- from pydantic_settings import BaseSettings, SettingsConfigDict
- from typing import List
- class ElasticsearchConfig(BaseSettings):
- """Elasticsearch 配置"""
- hosts: List[str] = Field(
- default_factory=lambda: [
- "https://192.168.205.85:9200",
- "https://192.168.205.85:9300",
- ]
- )
- username: str = "elastic"
- password: str = "nkvvASQuQ0XUGRq5OLvm"
- index_name: str = "meta_articles_v1"
- cert_path: str = Field(
- default="app/core/config/cert/es_certs.crt", description="SSL 证书路径"
- )
- cert_content: str = Field(
- default="LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZhVENDQTFHZ0F3SUJBZ0lVV0hIOVQ4UFZmaVN5dlQ2UzZOckFROWlTTGVFd0RRWUpLb1pJaHZjTkFRRUwKQlFBd1BERTZNRGdHQTFVRUF4TXhSV3hoYzNScFkzTmxZWEpqYUNCelpXTjFjbWwwZVNCaGRYUnZMV052Ym1acApaM1Z5WVhScGIyNGdTRlJVVUNCRFFUQWVGdzB5TlRBM01EY3dOekl3TlRSYUZ3MHlPREEzTURZd056SXdOVFJhCk1Ed3hPakE0QmdOVkJBTVRNVVZzWVhOMGFXTnpaV0Z5WTJnZ2MyVmpkWEpwZEhrZ1lYVjBieTFqYjI1bWFXZDEKY21GMGFXOXVJRWhVVkZBZ1EwRXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDRHdBd2dnSUtBb0lDQVFDYgpZOEU2OCs3UytoR0tRWDZ2aHlPeHVDZTNReUJIWWxzeGlTcUdoaStXRng5NTN1NFNFTXFyYnFpeWcyUXF1QjkvCnluaktvM1R2aG4wT1BqdUpSeXR0ZUtuOU9aa1ZoVVQxRDVQNlBGbzBqOHgxTElKWm01NTFYUkNuUVVaOGpDMEMKUkVIeS9Kb0tkVDRZU0NSSXVYVlRNNWlNNjZ2UTF0NUR1NHNiNzBtVHlndGMyRHlYd2dFNExrVm5ySGN3cjJCWgozL082OVd2RjdaZDdXUDkzeUVmVXNMc0FBUVN0YUNZTWVZeWFZNUs4VXdJVmNGeVdLSjlsbkRHYlI5S211WGI5CmlwV3FHdzZhQVlobVNzNWdMKzZ4SjVkQnBnTU9xb0JUdlpwTm5pTEEvcGhrZWxxOVcybkFoQkxGcFJHUm9mOEsKNWlLd2pBTjhnbkJYZVNWa2xCb0wyM1FENXpmb1Zqeis1ZWFYV080cVArOTBqYndmK3ZFZy9kdW5jRFJPTkd0awpUUWQwVnI5TmVPM0F5ZThQWnNtbWhLQWFjaWFQV1l5UU8zMG9tVXE5a1BzU1V6WlB1NGsrQ1liOHF3VlFDSHBuClphMTlOa3ZFUlE4aENRa3MwOC9seTVxRE0rNWxCeEpRRlFqaGp0elNEUS95YmJhck1tZ2FCeHBDZXhpa3NSbVAKQ1FxVkxXNklhTHhVR0VrSUpxWFJ4OG5tS1VmSzQzdlRCaXRPQkZ0NVVjS29iNitpa1pMcnFaNnhMWS9qa2xFOApaMXd0OUk4WmRRM0wzWDlFT1JnbVErNEtJdS9KUWZCZGZBWXRMYVM2TVlXaGlaU2FLYUloZ2ZYaVpRVE85WXVXCktySTVnK2QyWXUyQllnSWlvTEtvOUxGV0sxZVRHMmdOQUdVSS8rcnFzd0lEQVFBQm8yTXdZVEFkQmdOVkhRNEUKRmdRVWFiMmtBdFBsSkhMaXJRdmJUaHZJd0o3aGJMd3dId1lEVlIwakJCZ3dGb0FVYWIya0F0UGxKSExpclF2YgpUaHZJd0o3aGJMd3dEd1lEVlIwVEFRSC9CQVV3QXdFQi96QU9CZ05WSFE4QkFmOEVCQU1DQVFZd0RRWUpLb1pJCmh2Y05BUUVMQlFBRGdnSUJBRit3SjU5OEtyZmFpNUJyNlZxMFoxamowSnNVOEtpajR0OUQrODlRUGdJODUvTXYKendqOHhSZ3h4OVJpbktZZG56RkpXckQ5QklURzJsM0QwemNKaFhmWVVwcTVITFArYzN6TXdFTUd6VExiZ2k3MApjcFlxa1RKK2cvQWg1V1JZWlJISklNRjZCVks2aXpDT08wSjQ5ZVlDNkFPTk54RzJIZWVVdkVMNGNObnhwdzhUCk5VZTd2MEZYZTJpUExlRTcxM2g5OXJheTBsQmdJNko5UVpxYy9vRU00N2dIeStCeWZXQ3Y2WXc5cUxscHJwcFAKdGFIejJWV25DQUFDREx6YkRuWWhlbVFEamk4NnlyVVRFZENUOGF0MWpBd0hTaXhna204OG5FQmd4UEhEdXE4dAp0aG1pUzZkRUx2WFZVYnllV083QS83elZkZTBLbmR4ZTAwM091WWNYOUkySVg3YUlwQzhzVy95WSthbFJoa2xxCnQ5dkY2ZzFxdnNONjl4WGZXNXlJNUczMVRZTVV3LzNuZzBhVkpmUkZhWGtFVjJTV0VaRCs0c1dvWUMvR1U3a0sKemxmYUYyMmpUZXVsNXFDS2tOMWsraThLMmxoZUVFM1pCQzM1OFcwUnl2c3JEd3RYT3JhM1ZDcFo3cXJlejhPQQovSGVZNmlJU1pRN2cwczIwOUtqcU9QcVZHY0k4QjBwNktNaDAwQWVXaXNVNkUvd3kxTE5UeGtmMklTOWI4OG42CmEzcmowVEN5Y3doS09QVFBCNXB3bGZiWk5JMDB0R1RGanFxaTA3U0xxTzlaeXBzVmt5UjMyRzE2SlBKems4WncKa25nQlp0Nnk5THRDTVJWYnlEdUlETnErZmp0RGpneE1JOWJRWHR2ZTRiT3VxOGNaemNNakM2a2h6L0phCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=",
- description="SSL 证书内容 (base64 编码)",
- )
- # ES mappings 和 settings(从 elastic_search_mappings.py 迁移)
- mappings: dict = Field(default_factory=dict)
- settings: dict = Field(default_factory=dict)
- model_config = SettingsConfigDict(
- env_prefix="ES_", env_file=".env", case_sensitive=False, extra="ignore"
- )
|