FulltextSearch 全文搜索
(c *gin.Context)
| 87 | |
| 88 | // FulltextSearch 全文搜索 |
| 89 | func FulltextSearch(c *gin.Context) { |
| 90 | eid := config.GetEID(c) |
| 91 | |
| 92 | // 解析请求体 |
| 93 | var req rag.SearchRequest |
| 94 | if err := c.ShouldBindJSON(&req); err != nil { |
| 95 | c.JSON(http.StatusBadRequest, gin.H{ |
| 96 | "success": false, |
| 97 | "message": "请求参数错误", |
| 98 | "error": err.Error(), |
| 99 | }) |
| 100 | return |
| 101 | } |
| 102 | |
| 103 | // 强制设置为全文搜索 |
| 104 | req.SearchType = "fulltext" |
| 105 | |
| 106 | // 创建搜索服务 |
| 107 | searchService := rag.NewSearchService(model.DB) |
| 108 | |
| 109 | // 执行搜索 |
| 110 | response, err := searchService.Search(eid, &req, nil) |
| 111 | if err != nil { |
| 112 | c.JSON(http.StatusInternalServerError, gin.H{ |
| 113 | "success": false, |
| 114 | "message": "全文搜索失败", |
| 115 | "error": err.Error(), |
| 116 | }) |
| 117 | return |
| 118 | } |
| 119 | |
| 120 | c.JSON(http.StatusOK, gin.H{ |
| 121 | "success": true, |
| 122 | "message": "全文搜索成功", |
| 123 | "data": response, |
| 124 | }) |
| 125 | } |
| 126 | |
| 127 | // HybridSearch 混合搜索 |
| 128 | func HybridSearch(c *gin.Context) { |