func insertDocument(domain, title, url, group string, popularity float64, c *redis.Client) { encoded := encodeString(domain) encodedURL := encodeString(url) existingTitle, _ := c.Cmd("HGET", encoded+"$titles", encodedURL).Str() if existingTitle == "" { err := c.Cmd("HINCRBY", "$domaindocuments", domain, 1).Err errorHandler(err) } pipedCommands := 0 for _, prefix := range getPrefixes(title) { if group != "" { encodedGroup := encodeString(group) c.Append("ZADD", encoded+encodedGroup+prefix, popularity, encodedURL) c.Append("HSET", encoded+"$groups", encodedURL, encodedGroup) pipedCommands++ } else { c.Append("ZADD", encoded+prefix, popularity, encodedURL) } pipedCommands++ } c.Append("HSET", encoded+"$titles", encodedURL, title) pipedCommands++ c.Append("HSET", encoded+"$urls", encodedURL, url) pipedCommands++ for i := 1; i <= pipedCommands; i++ { if err := c.GetReply().Err; err != nil { errorHandler(err) } } }