yxy添加 build_index.py 注释

yxy_branch
严欣怡 4 months ago
parent 8571e2971b
commit 6ffc8efab6

@ -1,18 +1,45 @@
# 导入Django命令基类用于创建自定义管理命令
from django.core.management.base import BaseCommand
from blog.documents import ElapsedTimeDocument, ArticleDocumentManager, ElaspedTimeDocumentManager, \
ELASTICSEARCH_ENABLED
# 导入博客相关的Elasticsearch文档管理器和配置
from blog.documents import (
ElapsedTimeDocument, # 耗时统计文档模型
ArticleDocumentManager, # 文章文档管理器
ElaspedTimeDocumentManager, # 耗时统计文档管理器原拼写可能存在笔误应为Elapsed
ELASTICSEARCH_ENABLED # Elasticsearch启用状态标记
)
# TODO 参数化
# TODO: 后续可优化为支持参数化(如指定重建的索引类型等)
class Command(BaseCommand):
"""
Django自定义管理命令构建Elasticsearch搜索索引
用于初始化或重建文章和耗时统计相关的搜索索引
"""
# 命令的帮助信息使用python manage.py help build_index时显示
help = 'build search index'
def handle(self, *args, **options):
"""
命令核心执行方法
当运行python manage.py build_index时调用
"""
# 仅在Elasticsearch启用时执行索引构建
if ELASTICSEARCH_ENABLED:
# 构建耗时统计文档的索引
ElaspedTimeDocumentManager.build_index()
manager = ElapsedTimeDocument()
manager.init()
manager = ArticleDocumentManager()
manager.delete_index()
manager.rebuild()
# 初始化耗时统计文档的索引结构
elapsed_manager = ElapsedTimeDocument()
elapsed_manager.init() # 创建索引映射
# 处理文章文档索引:先删除旧索引,再重建
article_manager = ArticleDocumentManager()
article_manager.delete_index() # 删除现有文章索引
article_manager.rebuild() # 重新创建索引并同步数据
# 输出成功信息到控制台
self.stdout.write(self.style.SUCCESS('Successfully built search indexes'))
else:
# 当Elasticsearch未启用时提示用户
self.stdout.write(self.style.WARNING('Elasticsearch is not enabled, skipping index build'))
Loading…
Cancel
Save