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:
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user