Files
Achievement_Inputing/elastic/documents.py
2025-11-13 16:52:23 +08:00

40 lines
1.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from django_elasticsearch_dsl import Document, fields, Index
from .models import AchievementData, User, ElasticNews
from .indexes import INDEX_NAME
ACHIEVEMENT_INDEX = Index(INDEX_NAME)
ACHIEVEMENT_INDEX.settings(number_of_shards=1, number_of_replicas=0)
USER_INDEX = ACHIEVEMENT_INDEX
@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列表应该只包含需要特殊处理的字段或者可以完全省略
# 因为我们已经显式定义了所有字段