Files

41 lines
959 B
Go
Raw Permalink Normal View History

2025-08-12 17:06:48 +08:00
package bleveInit
2025-08-11 23:10:36 +08:00
import (
"fmt"
"github.com/blevesearch/bleve/v2"
"log"
"os"
2025-08-12 17:06:48 +08:00
"toutoukan/controllers/search"
2025-08-11 23:10:36 +08:00
)
// 初始化索引(程序启动时调用一次)
func InitIndex() error {
// 检查索引目录是否存在Bleve v2 方式)
_, err := os.Stat("data")
exists := !os.IsNotExist(err)
if err != nil && !os.IsNotExist(err) {
// 除了"不存在"之外的其他错误(如权限问题)
return fmt.Errorf("检查索引目录失败: %v", err)
}
if exists {
// 打开已有索引
2025-08-12 17:06:48 +08:00
search.GlobalIndex, err = bleve.Open("data")
2025-08-11 23:10:36 +08:00
if err != nil {
return fmt.Errorf("打开索引失败: %v", err)
}
log.Println("成功打开已有索引")
} else {
// 创建新索引
mapping := bleve.NewIndexMapping()
2025-08-12 17:06:48 +08:00
search.GlobalIndex, err = bleve.New("data", mapping)
2025-08-11 23:10:36 +08:00
if err != nil {
return fmt.Errorf("创建索引失败: %v", err)
}
log.Println("成功创建新索引")
// 初始化文档(略)
}
return nil
}