FeatureBaseDB / go-pilosa

Go client library for Pilosa
https://www.pilosa.com/
BSD 3-Clause "New" or "Revised" License
58 stars 23 forks source link

Go Client for Pilosa

This repo archived Sept 2022 as part of the transition from Pilosa to FeatureBase. Please contact community[at]featurebase[dot]com with any questions.

GoDoc

Go client for Pilosa high performance distributed index.

What's New?

See: CHANGELOG

Requirements

Install

Download the library in your GOPATH using:

go get github.com/pilosa/go-pilosa

After that, you can import the library in your code using:

import "github.com/pilosa/go-pilosa"

Usage

Quick overview

Assuming Pilosa server is running at localhost:10101 (the default):

package main

import (
    "fmt"

    "github.com/pilosa/go-pilosa"
)

func main() {
    var err error

    // Create the default client
    client := pilosa.DefaultClient()

    // Retrieve the schema
    schema, err := client.Schema()

    // Create an Index object
    myindex := schema.Index("myindex")

    // Create a Field object
    myfield := myindex.Field("myfield")

    // make sure the index and the field exists on the server
    err = client.SyncSchema(schema)

    // Send a Set query. If err is non-nil, response will be nil.
    response, err := client.Query(myfield.Set(5, 42))

    // Send a Row query. If err is non-nil, response will be nil.
    response, err = client.Query(myfield.Row(5))

    // Get the result
    result := response.Result()
    // Act on the result
    if result != nil {
        columns := result.Row().Columns
        fmt.Println("Got columns: ", columns)
    }

    // You can batch queries to improve throughput
    response, err = client.Query(myindex.BatchQuery(
        myfield.Row(5),
        myfield.Row(10)))
    if err != nil {
        fmt.Println(err)
    }

    for _, result := range response.Results() {
        // Act on the result
        fmt.Println(result.Row().Columns)
    }
}

Documentation

Data Model and Queries

See: Data Model and Queries

Executing Queries

See: Server Interaction

Importing and Exporting Data

See: Importing and Exporting Data

Other Documentation

Contributing

See: CONTRIBUTING

License

See: LICENSE