加入检索
This commit is contained in:
@@ -169,6 +169,7 @@ func NewSchema() (graphql.Schema, error) {
|
|||||||
"description": &graphql.ArgumentConfig{Type: graphql.String},
|
"description": &graphql.ArgumentConfig{Type: graphql.String},
|
||||||
"tags": &graphql.ArgumentConfig{Type: graphql.String},
|
"tags": &graphql.ArgumentConfig{Type: graphql.String},
|
||||||
"rank": &graphql.ArgumentConfig{Type: graphql.String},
|
"rank": &graphql.ArgumentConfig{Type: graphql.String},
|
||||||
|
"text": &graphql.ArgumentConfig{Type: graphql.String}, // 查找图像中的文字
|
||||||
"comment_num": &graphql.ArgumentConfig{Type: graphql.Int},
|
"comment_num": &graphql.ArgumentConfig{Type: graphql.Int},
|
||||||
"praise_count": &graphql.ArgumentConfig{Type: graphql.Int},
|
"praise_count": &graphql.ArgumentConfig{Type: graphql.Int},
|
||||||
"collect_count": &graphql.ArgumentConfig{Type: graphql.Int},
|
"collect_count": &graphql.ArgumentConfig{Type: graphql.Int},
|
||||||
@@ -226,6 +227,67 @@ func NewSchema() (graphql.Schema, error) {
|
|||||||
if p.Args["content"] != nil {
|
if p.Args["content"] != nil {
|
||||||
where = append(where, fmt.Sprintf("content='%s'", p.Args["content"]))
|
where = append(where, fmt.Sprintf("content='%s'", p.Args["content"]))
|
||||||
}
|
}
|
||||||
|
if p.Args["remark"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("remark='%s'", p.Args["remark"]))
|
||||||
|
}
|
||||||
|
if p.Args["description"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("description='%s'", p.Args["description"]))
|
||||||
|
}
|
||||||
|
if p.Args["tags"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("tags='%s'", p.Args["tags"]))
|
||||||
|
}
|
||||||
|
if p.Args["rank"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("rank='%s'", p.Args["rank"]))
|
||||||
|
}
|
||||||
|
if p.Args["comment_num"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("comment_num=%d", p.Args["comment_num"]))
|
||||||
|
}
|
||||||
|
if p.Args["praise_count"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("praise_count=%d", p.Args["praise_count"]))
|
||||||
|
}
|
||||||
|
if p.Args["collect_count"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("collect_count=%d", p.Args["collect_count"]))
|
||||||
|
}
|
||||||
|
if p.Args["article_id"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("article_id=%d", p.Args["article_id"]))
|
||||||
|
}
|
||||||
|
if p.Args["user_id"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("user_id=%d", p.Args["user_id"]))
|
||||||
|
}
|
||||||
|
if p.Args["create_time"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("create_time='%s'", p.Args["create_time"]))
|
||||||
|
}
|
||||||
|
if p.Args["update_time"] != nil {
|
||||||
|
where = append(where, fmt.Sprintf("update_time='%s'", p.Args["update_time"]))
|
||||||
|
}
|
||||||
|
if p.Args["text"] != nil {
|
||||||
|
// 通过字符串构建查询
|
||||||
|
var buf strings.Builder
|
||||||
|
query := map[string]interface{}{
|
||||||
|
"query": map[string]interface{}{
|
||||||
|
"match": map[string]interface{}{
|
||||||
|
"content": p.Args["text"],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
buf.WriteString(fmt.Sprintf("%v", query))
|
||||||
|
// 执行查询
|
||||||
|
var sd *models.SearchData
|
||||||
|
sd = models.ElasticsearchSearch(buf.String())
|
||||||
|
// 获取搜索结果的 ID 列表
|
||||||
|
id_list := sd.GetIDList()
|
||||||
|
// 合并为以逗号分隔的字符串
|
||||||
|
id_list_str := strings.Trim(strings.Join(strings.Fields(fmt.Sprint(id_list)), ","), "[]")
|
||||||
|
// 搜索结果为空
|
||||||
|
if id_list_str == "" {
|
||||||
|
return map[string]interface{}{
|
||||||
|
"list": []Image{},
|
||||||
|
"next": false,
|
||||||
|
"total": 0,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
where = append(where, fmt.Sprintf("id IN (%s)", id_list_str))
|
||||||
|
}
|
||||||
where_str := strings.Join(where, " AND ")
|
where_str := strings.Join(where, " AND ")
|
||||||
|
|
||||||
// 执行查询
|
// 执行查询
|
||||||
|
Reference in New Issue
Block a user