在创建客户端时将协议更改为2-以下代码有效:
package main
import (
"context"
"fmt"
"github.com/redis/go-redis/v9"
)
var ctx = context.Background()
func main() {
var client *redis.Client
client = redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Protocol: 2, // this right here
})
_, err := client.FTCreate(ctx, "txt", &redis.FTCreateOptions{}, &redis.FieldSchema{FieldName: "txt", FieldType: redis.SearchFieldTypeText}).Result()
if err != nil {
fmt.Printf("\nerr: %v", err)
}
// Add data
client.HSet(ctx, "doc1", "txt", "foo baz")
client.HSet(ctx, "doc2", "txt", "foo bar")
// Search
res, err := client.FTSearchWithArgs(ctx, "txt", "foo ~bar", &redis.FTSearchOptions{WithScores: true, Limit: 50}).Result()
if err != nil {
fmt.Printf("\nerr: %v", err)
} else {
fmt.Printf("\nRetrieved :%d documents", len(res.Docs))
}
}
当go redis客户端通过RESP3(redis-go客户端的默认设置)与redis接口时,go redis客户机读取结果的方式似乎有问题。