72 lines
2.3 KiB
Go
72 lines
2.3 KiB
Go
|
|
package entity
|
|||
|
|
|
|||
|
|
import (
|
|||
|
|
"time"
|
|||
|
|
|
|||
|
|
"gitea.com/red-future/common/beans"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
// ConversationArchiveTempCollection 归档临时表名
|
|||
|
|
const ConversationArchiveTempCollection = "conversation_archive_temp"
|
|||
|
|
|
|||
|
|
// ConversationArchiveTemp 归档临时表实体(与 Conversation 结构相同)
|
|||
|
|
type ConversationArchiveTemp struct {
|
|||
|
|
beans.MongoBaseDO `bson:",inline"`
|
|||
|
|
|
|||
|
|
UserId string `bson:"userId" json:"userId"`
|
|||
|
|
Platform string `bson:"platform" json:"platform"`
|
|||
|
|
SessionId string `bson:"sessionId" json:"sessionId"`
|
|||
|
|
Question string `bson:"question" json:"question"`
|
|||
|
|
Answer string `bson:"answer" json:"answer"`
|
|||
|
|
MessageId string `bson:"messageId" json:"messageId"`
|
|||
|
|
MsgTime *time.Time `bson:"msgTime" json:"msgTime"` // 指针类型,与MongoBaseDO一致
|
|||
|
|
|
|||
|
|
// 原始文档 ID,用于删除原表数据
|
|||
|
|
OriginalId string `bson:"originalId" json:"originalId"`
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ConversationES ES 索引文档结构
|
|||
|
|
type ConversationES struct {
|
|||
|
|
Id string `json:"id"` // MongoDB 原始 ID
|
|||
|
|
UserId string `json:"userId"` // 用户ID
|
|||
|
|
Platform string `json:"platform"` // 平台
|
|||
|
|
SessionId string `json:"sessionId"` // Session ID
|
|||
|
|
Question string `json:"question"` // 问题
|
|||
|
|
Answer string `json:"answer"` // 回复
|
|||
|
|
MessageId string `json:"messageId"` // 消息ID
|
|||
|
|
MsgTime time.Time `json:"msgTime"` // 消息时间
|
|||
|
|
TenantId string `json:"tenantId"` // 租户ID
|
|||
|
|
CreatedAt time.Time `json:"createdAt"` // 创建时间
|
|||
|
|
UpdatedAt time.Time `json:"updatedAt"` // 更新时间
|
|||
|
|
ArchivedAt time.Time `json:"archivedAt"` // 归档时间
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ConversationESMapping ES 索引映射
|
|||
|
|
const ConversationESMapping = `
|
|||
|
|
{
|
|||
|
|
"settings": {
|
|||
|
|
"number_of_shards": 3,
|
|||
|
|
"number_of_replicas": 1
|
|||
|
|
},
|
|||
|
|
"mappings": {
|
|||
|
|
"properties": {
|
|||
|
|
"id": { "type": "keyword" },
|
|||
|
|
"userId": { "type": "keyword" },
|
|||
|
|
"platform": { "type": "keyword" },
|
|||
|
|
"sessionId": { "type": "keyword" },
|
|||
|
|
"question": { "type": "text", "analyzer": "standard" },
|
|||
|
|
"answer": { "type": "text", "analyzer": "standard" },
|
|||
|
|
"messageId": { "type": "keyword" },
|
|||
|
|
"msgTime": { "type": "date" },
|
|||
|
|
"tenantId": { "type": "keyword" },
|
|||
|
|
"createdAt": { "type": "date" },
|
|||
|
|
"updatedAt": { "type": "date" },
|
|||
|
|
"archivedAt": { "type": "date" }
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
`
|
|||
|
|
|
|||
|
|
// ConversationESIndex ES 索引名
|
|||
|
|
const ConversationESIndex = "conversations"
|