RediSearch Go Client
Go client for RediSearch, based on redigo.
Installing
- ``` shell
- go get github.com/RediSearch/redisearch-go/redisearch
- ```
Usage Example
- ``` go
- package main
- import (
- "fmt"
- "log"
- "time"
- "github.com/RediSearch/redisearch-go/redisearch"
- )
- func ExampleClient() {
- // Create a client. By default a client is schemaless
- // unless a schema is provided when creating the index
- c := redisearch.NewClient("localhost:6379", "myIndex")
- // Create a schema
- sc := redisearch.NewSchema(redisearch.DefaultOptions).
- AddField(redisearch.NewTextField("body")).
- AddField(redisearch.NewTextFieldOptions("title", redisearch.TextFieldOptions{Weight: 5.0, Sortable: true})).
- AddField(redisearch.NewNumericField("date"))
- // Drop an existing index. If the index does not exist an error is returned
- c.Drop()
- // Create the index with the given schema
- if err := c.CreateIndex(sc); err != nil {
- log.Fatal(err)
- }
- // Create a document with an id and given score
- doc := redisearch.NewDocument("doc1", 1.0)
- doc.Set("title", "Hello world").
- Set("body", "foo bar").
- Set("date", time.Now().Unix())
- // Index the document. The API accepts multiple documents at a time
- if err := c.Index([]redisearch.Document{doc}...); err != nil {
- log.Fatal(err)
- }
- // Searching with limit and sorting
- docs, total, err := c.Search(redisearch.NewQuery("hello world").
- Limit(0, 2).
- SetReturnFields("title"))
- fmt.Println(docs[0].Id, docs[0].Properties["title"], total, err)
- // Output: doc1 Hello world 1
- }
- ```
Supported RediSearch Commands
Command | Recommended API and godoc |
---|---|
:--- | :--- |
FT.CREATE | CreateIndex |
FT.ADD | IndexOptions |
FT.ALTER | AddField |
FT.ALIASADD | AliasAdd |
FT.ALIASUPDATE | AliasUpdate |
FT.ALIASDEL | AliasDel |
FT.INFO | Info |
FT.SEARCH | Search |
FT.AGGREGATE | AggregateQuery |
FT.CURSOR | Aggregate + (*WithCursor option set to True) |
FT.EXPLAIN | Explain |
FT.DEL | DeleteDocument |
FT.GET | Get |
FT.MGET | MultiGet |
FT.DROP | Drop |
FT.TAGVALS | GetTagVals |
FT.SUGADD | AddTerms |
FT.SUGGET | SuggestOpts |
FT.SUGDEL | DeleteTerms |
FT.SUGLEN | Autocompleter.Length |
FT.SYNUPDATE | SynUpdate |
FT.SYNDUMP | SynDump |
FT.SPELLCHECK | SpellCheck |
FT.DICTADD | DictAdd |
FT.DICTDEL | DictDel |
FT.DICTDUMP | DictDump |
FT.CONFIG | SetConfig、GetConfig |