修正查询
This commit is contained in:
@@ -272,24 +272,9 @@ func NewSchema(config Config) (graphql.Schema, error) {
|
|||||||
where = append(where, fmt.Sprintf("update_time='%s'", p.Args["update_time"]))
|
where = append(where, fmt.Sprintf("update_time='%s'", p.Args["update_time"]))
|
||||||
}
|
}
|
||||||
if p.Args["text"] != nil {
|
if p.Args["text"] != nil {
|
||||||
// 通过字符串构建查询
|
id_list := models.ElasticsearchSearch(p.Args["text"].(string)).GetIDList()
|
||||||
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)), ","), "[]")
|
id_list_str := strings.Trim(strings.Join(strings.Fields(fmt.Sprint(id_list)), ","), "[]")
|
||||||
// 搜索结果为空
|
fmt.Println("id_list_str:", id_list_str)
|
||||||
if id_list_str == "" {
|
if id_list_str == "" {
|
||||||
return map[string]interface{}{
|
return map[string]interface{}{
|
||||||
"list": []Image{},
|
"list": []Image{},
|
||||||
|
@@ -5,6 +5,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
@@ -55,15 +56,16 @@ type SearchData struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 获取搜索结果的 ID 列表
|
// 获取搜索结果的 ID 列表
|
||||||
func (sd *SearchData) GetIDList() (id_list []string) {
|
func (sd SearchData) GetIDList() (id_list []string) {
|
||||||
for _, hit := range sd.Hits.Hits {
|
for _, hit := range sd.Hits.Hits {
|
||||||
id_list = append(id_list, hit.ID)
|
id_list = append(id_list, hit.ID)
|
||||||
|
fmt.Println(hit.Source.Content)
|
||||||
}
|
}
|
||||||
return id_list
|
return id_list
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取搜索结果的内容列表
|
// 获取搜索结果的内容列表
|
||||||
func ElasticsearchSearch(text string) (r *SearchData) {
|
func ElasticsearchSearch(text string) (r SearchData) {
|
||||||
// 通过字符串构建查询
|
// 通过字符串构建查询
|
||||||
var buf bytes.Buffer
|
var buf bytes.Buffer
|
||||||
query := map[string]interface{}{
|
query := map[string]interface{}{
|
||||||
|
Reference in New Issue
Block a user