45 lines
852 B
Go
Raw Normal View History

package curd
import (
"catface/app/model"
"catface/app/model_es"
"catface/app/model_res"
)
func CreateDocCurdFactory() *DocCurd {
return &DocCurd{
doc: model.CreateDocFactory(""),
doc_es: model_es.CreateDocESFactory()}
}
type DocCurd struct { // 组合方法的使用
doc *model.Doc
doc_es *model_es.Doc
}
func (d *DocCurd) TopK(embedding []float64, k int) (temp []model_res.DocResult, err error) {
// ESTopK
docs_es, err := d.doc_es.TopK(embedding, k)
if err != nil {
return
}
// MySQL补充基本信息
var ids []int64
for _, doc := range docs_es {
ids = append(ids, doc.Id)
}
docs := d.doc.ShowByIds(ids, "id", "name")
// 装载
for _, doc := range docs {
for _, doc_es := range docs_es {
if doc.Id == doc_es.Id {
temp = append(temp, *model_res.NewDocResult(&doc, &doc_es))
}
}
}
return
}