48 lines
961 B
Go
48 lines
961 B
Go
package index
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/alist-org/alist/v3/internal/conf"
|
|
"github.com/blevesearch/bleve/v2"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
var index bleve.Index
|
|
|
|
func Init(indexPath *string) {
|
|
fileIndex, err := bleve.Open(*indexPath)
|
|
if err == bleve.ErrorIndexPathDoesNotExist {
|
|
log.Infof("Creating new index...")
|
|
indexMapping := bleve.NewIndexMapping()
|
|
fileIndex, err = bleve.New(*indexPath, indexMapping)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
index = fileIndex
|
|
progress := ReadProgress()
|
|
if !progress.IsDone {
|
|
log.Warnf("Last index build does not succeed!")
|
|
WriteProgress(&Progress{
|
|
FileCount: progress.FileCount,
|
|
IsDone: false,
|
|
LastDoneTime: nil,
|
|
})
|
|
}
|
|
}
|
|
|
|
func Reset() {
|
|
log.Infof("Removing old index...")
|
|
err := os.RemoveAll(conf.Conf.IndexDir)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
Init(&conf.Conf.IndexDir)
|
|
WriteProgress(&Progress{
|
|
FileCount: 0,
|
|
IsDone: false,
|
|
LastDoneTime: nil,
|
|
})
|
|
}
|