新增“数据编辑”

This commit is contained in:
2025-11-10 09:32:08 +08:00
parent 61b1d93718
commit f3aec9a18d
11 changed files with 681 additions and 0 deletions

53
elastic/documents.py Normal file
View File

@@ -0,0 +1,53 @@
from django_elasticsearch_dsl import Document, fields, Index
from .models import AchievementData, User, ElasticNews
# 获奖数据索引 - 对应Flask项目中的wordsearch266666
ACHIEVEMENT_INDEX = Index('wordsearch266666')
ACHIEVEMENT_INDEX.settings(number_of_shards=1, number_of_replicas=0)
# 用户数据索引 - 对应Flask项目中的users
USER_INDEX = Index('users')
USER_INDEX.settings(number_of_shards=1, number_of_replicas=0)
# 新闻索引 - 保留原有功能
NEWS_INDEX = Index('elastic_news')
NEWS_INDEX.settings(number_of_shards=1, number_of_replicas=0)
@ACHIEVEMENT_INDEX.doc_type
class AchievementDocument(Document):
"""获奖数据文档映射"""
writer_id = fields.TextField(fields={'keyword': {'type': 'keyword'}})
data = fields.TextField(
analyzer='ik_max_word',
search_analyzer='ik_smart',
fields={'keyword': {'type': 'keyword'}}
)
image = fields.KeywordField()
class Django:
model = AchievementData
# fields列表应该只包含需要特殊处理的字段或者可以完全省略
# 因为我们已经显式定义了所有字段
@USER_INDEX.doc_type
class UserDocument(Document):
"""用户数据文档映射"""
user_id = fields.LongField()
username = fields.KeywordField()
password = fields.KeywordField()
permission = fields.IntegerField()
class Django:
model = User
# fields列表应该只包含需要特殊处理的字段或者可以完全省略
# 因为我们已经显式定义了所有字段
@NEWS_INDEX.doc_type
class NewsDocument(Document):
"""新闻文档映射 - 保留原有功能"""
id = fields.IntegerField(attr='id')
title = fields.TextField(fields={'keyword': {'type': 'keyword'}})
content = fields.TextField(fields={'keyword': {'type': 'keyword'}})
class Django:
model = ElasticNews