Redisearch go client with go-redis options
For usage example go to examples folder
- Search Builder
- Raw query
- Go-redis integration
go get github.com/uretgec/go-redisearch // Constants const INDEX_DREAMS = "index_dreams" const DREAM_DIC_KEY = "dreamdic" // Redis Options redisAddrs := []string{"127.0.0.1:6481"} redisPoolSizes := []int{1000} redisMinIdleConns := []int{2} redisMaxRetries := []int{2} client := redisearch.NewRedisearchClient("myredisearch", redisAddrs, redisPoolSizes, redisMinIdleConns, redisMaxRetries) defer client.CloseUniversalClient() // Check Redis is here :) err := client.HealthCheckedUniversalClient() if err != nil { fmt.Printf("error: %#v\n", err) panic(err) } // Suggest Search suggestions, err := client.UClient.Do(client.Ctx, "FT.SUGGET", DREAM_DIC_KEY, "Dif", "FUZZY", "MAX", 5).StringSlice() if err != nil { fmt.Printf("error: %v\n", err) panic(err) } fmt.Printf("Suggestions: %v\n", suggestions) // Search Builder Init searchBuilder := redisearch.NewSearchBuilder() searchBuilder.Query = "different" // return only one result //searchBuilder.Query = "dream" // return all result no special one searchBuilder.SortBy = "latest" searchQuery, err := generateSearchQuery(INDEX_DREAMS, searchBuilder, int64(0), int64(10)) if err != nil { fmt.Printf("error: %v\n", err) panic(err) } results, err := client.UClient.Do(client.Ctx, searchQuery...).Slice() if err != nil { fmt.Printf("error: %v\n", err) panic(err) } var total int64 uids := []string{} if len(results) > 0 { for i := 0; i < len(results); i++ { if i == 0 { total = results[0].(int64) if total == 0 { break } else { continue } } uids = append(uids, strings.Replace(results[i].(string), "drd:", "", 1)) } } fmt.Printf("Total: %d, Results: %v\n", int(total), uids) - Use client methods
- Add test files
- Add new examples
Go-Redis (https://github.com/go-redis/redis)