package searcher import ( "context" "github.com/alist-org/alist/v3/internal/model" ) type Config struct { Name string AutoUpdate bool } type Searcher interface { // Config of the searcher Config() Config // Search specific keywords in specific path Search(ctx context.Context, req model.SearchReq) ([]model.SearchNode, int64, error) // Index obj with parent Index(ctx context.Context, node model.SearchNode) error // BatchIndex obj with parent BatchIndex(ctx context.Context, nodes []model.SearchNode) error // Get by parent Get(ctx context.Context, parent string) ([]model.SearchNode, error) // Del with prefix Del(ctx context.Context, prefix string) error // Release resource Release(ctx context.Context) error // Clear all index Clear(ctx context.Context) error }