feat: Search enhancement (#2562)

* feat: ignore AList storage on indexing

* fix: remove unused err in `walkFn`

* chore(ci): fix auto_lang trigger and run it

* feat: batch index

* feat: quit index & init index

* feat: set DocType for bleve data

* fix: build index cleanup check origin err
This commit is contained in:
BoYanZh
2022-12-05 13:28:39 +08:00
committed by GitHub
parent 4e1be9bee6
commit 8c0dfe2f3d
16 changed files with 160 additions and 50 deletions

View File

@ -17,6 +17,15 @@ func Init(indexPath *string) (bleve.Index, error) {
if err == bleve.ErrorIndexPathDoesNotExist {
log.Infof("Creating new index...")
indexMapping := bleve.NewIndexMapping()
searchNodeMapping := bleve.NewDocumentMapping()
searchNodeMapping.AddFieldMappingsAt("is_dir", bleve.NewBooleanFieldMapping())
// TODO: appoint analyzer
parentFieldMapping := bleve.NewTextFieldMapping()
searchNodeMapping.AddFieldMappingsAt("parent", parentFieldMapping)
// TODO: appoint analyzer
nameFieldMapping := bleve.NewKeywordFieldMapping()
searchNodeMapping.AddFieldMappingsAt("name", nameFieldMapping)
indexMapping.AddDocumentMapping("SearchNode", searchNodeMapping)
fileIndex, err = bleve.New(*indexPath, indexMapping)
if err != nil {
return nil, err

View File

@ -49,6 +49,14 @@ func (b *Bleve) Index(ctx context.Context, node model.SearchNode) error {
return b.BIndex.Index(uuid.NewString(), node)
}
func (b *Bleve) BatchIndex(ctx context.Context, nodes []model.SearchNode) error {
batch := b.BIndex.NewBatch()
for _, node := range nodes {
batch.Index(uuid.NewString(), node)
}
return b.BIndex.Batch(batch)
}
func (b *Bleve) Get(ctx context.Context, parent string) ([]model.SearchNode, error) {
return nil, errs.NotSupport
}