package indexes import ( "fmt" "git.devices.local/mawas/golang-api-skeleton/lib/common" "git.devices.local/mawas/golang-api-skeleton/repositories" "git.devices.local/mawas/golang-api-skeleton/services" "github.com/blevesearch/bleve" "gorm.io/gorm" ) func Init(db *gorm.DB) (bleve.Index, error) { tokenMapping := bleve.NewDocumentMapping() tokenMapping.AddFieldMappingsAt("Token", bleve.NewTextFieldMapping()) userMapping := bleve.NewDocumentMapping() userMapping.AddSubDocumentMapping("Tokens", tokenMapping) userMapping.AddFieldMappingsAt("Username", bleve.NewTextFieldMapping()) userMapping.AddFieldMappingsAt("Firstname", bleve.NewTextFieldMapping()) userMapping.AddFieldMappingsAt("Lastname", bleve.NewTextFieldMapping()) userMapping.AddFieldMappingsAt("Email", bleve.NewTextFieldMapping()) userMapping.AddFieldMappingsAt("Active", bleve.NewTextFieldMapping()) // indexName := "users.bleve" mapping := bleve.NewIndexMapping() mapping.AddDocumentMapping("Thread", userMapping) // ???? mapping.TypeField = "Username" // index, err := bleve.New(indexName, mapping) index, err := bleve.NewMemOnly(mapping) if err != nil { return index, err } userRepo := repositories.NewUserRepository(db, common.CLIUserID, common.CLIUsername, nil) userService := services.NewUserService(userRepo) users, _ := userService.ReadAll() for i := range users { id := users[i].ID // doc, err := json.Marshal(users[i]) // if err != nil { // return index, err // } // fmt.Println(id, string(doc)) err = index.Index(id.String(), users[i]) if err != nil { return index, err } // err = index.SetInternal([]byte(id), doc) // if err != nil { // return index, err // } } query := bleve.NewMatchQuery("Mustermann") search := bleve.NewSearchRequest(query) searchResults, err := index.Search(search) if err != nil { fmt.Println("error", err.Error()) } fmt.Println(searchResults) return index, nil }