chore: 初始化 Cloudreve 源码仓库
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
package searcher
|
||||
|
||||
import (
|
||||
"context"
|
||||
"io"
|
||||
)
|
||||
|
||||
type SearchDocument struct {
|
||||
ID string `json:"id"`
|
||||
FileID int `json:"file_id"`
|
||||
OwnerID int `json:"owner_id"`
|
||||
EntityID int `json:"entity_id"`
|
||||
ChunkIdx int `json:"chunk_idx"`
|
||||
FileName string `json:"file_name"`
|
||||
Text string `json:"text"`
|
||||
Formated *FormatedHit `json:"_formatted,omitempty"`
|
||||
}
|
||||
|
||||
type FormatedHit struct {
|
||||
Text string `json:"text"`
|
||||
}
|
||||
|
||||
type SearchResult struct {
|
||||
FileID int `json:"file_id"`
|
||||
OwnerID int `json:"owner_id"`
|
||||
EntityID int `json:"entity_id"`
|
||||
FileName string `json:"file_name"`
|
||||
Text string `json:"text"`
|
||||
}
|
||||
|
||||
type SearchIndexer interface {
|
||||
IndexFile(ctx context.Context, ownerID, fileID, entityID int, fileName, text string) error
|
||||
DeleteByFileIDs(ctx context.Context, fileID ...int) error
|
||||
ChangeOwner(ctx context.Context, fileID, oldOwnerID, newOwnerID int) error
|
||||
CopyByFileID(ctx context.Context, srcFileID, dstFileID, dstOwnerID, dstEntityID int) error
|
||||
Rename(ctx context.Context, fileID, entityID int, newFileName string) error
|
||||
Search(ctx context.Context, ownerID int, query string, offset int) ([]SearchResult, int64, error)
|
||||
// IndexReady reports whether the search index exists and has the required
|
||||
// configuration (filterable/searchable attributes, etc.).
|
||||
IndexReady(ctx context.Context) (bool, error)
|
||||
EnsureIndex(ctx context.Context) error
|
||||
// DeleteAll removes all documents from the index.
|
||||
DeleteAll(ctx context.Context) error
|
||||
Close() error
|
||||
}
|
||||
|
||||
type TextExtractor interface {
|
||||
Exts() []string
|
||||
MaxFileSize() int64
|
||||
Extract(ctx context.Context, reader io.Reader) (string, error)
|
||||
}
|
||||
Reference in New Issue
Block a user