featurebase/client
Travis Turner 5c76ad5e70 Move batch.Importer interface to pilosa.Importer (#2347)
* Move batch.Importer interface to pilosa.Importer

In addition to moving the interface, it updates all the methods to use
dax.TableID (for example) intead of a string pilosa index name.

* Change unused onPremImporter methods to no-op.

onPremImporter is a wrapper around API which implements the Importer
interface. This is currently only used by sql3 running locally in standard
(i.e not "serverless") mode. Because sql3 always sets
`useShardTransactionalEndpoint = true`, There are several methods which this
implemtation of the Importer interface does not use, and therefore they
intentionally no-op.

(cherry picked from commit 12d608c80d)
2022-12-12 09:01:20 -08:00
..
csv Updated dependency paths to reflect new repo location 2022-09-06 09:39:22 -07:00
docs Updated code to latest version for open-sourcing. 2022-09-02 13:23:39 -07:00
types Add DAX - full list of squashed commits below 2022-12-12 09:01:20 -08:00
api.go Move batch.Importer interface to pilosa.Importer (#2347) 2022-12-12 09:01:20 -08:00
client.go Introduce ServiceManager and Refactor DAX Integration tests (#2320) 2022-12-12 09:01:20 -08:00
client_it_test.go Add DAX - full list of squashed commits below 2022-12-12 09:01:20 -08:00
client_test.go Updated dependency paths to reflect new repo location 2022-09-06 09:39:22 -07:00
cluster.go Updated dependency paths to reflect new repo location 2022-09-06 09:39:22 -07:00
cluster_test.go Updated dependency paths to reflect new repo location 2022-09-06 09:39:22 -07:00
doc.go Updated dependency paths to reflect new repo location 2022-09-06 09:39:22 -07:00
error.go Updated code to latest version for open-sourcing. 2022-09-02 13:23:39 -07:00
importer.go Move batch.Importer interface to pilosa.Importer (#2347) 2022-12-12 09:01:20 -08:00
logimport.go Updated code to latest version for open-sourcing. 2022-09-02 13:23:39 -07:00
logimport_test.go use testhook test cleanup 2022-09-30 11:25:27 -07:00
main_test.go added testify dependency 2022-09-30 11:31:37 -07:00
orm.go Add DAX - full list of squashed commits below 2022-12-12 09:01:20 -08:00
orm_test.go Add DAX - full list of squashed commits below 2022-12-12 09:01:20 -08:00
README.md Updated code to latest version for open-sourcing. 2022-09-02 13:23:39 -07:00
record.go Updated code to latest version for open-sourcing. 2022-09-02 13:23:39 -07:00
record_test.go Updated dependency paths to reflect new repo location 2022-09-06 09:39:22 -07:00
response.go Updated dependency paths to reflect new repo location 2022-09-06 09:39:22 -07:00
response_test.go Updated dependency paths to reflect new repo location 2022-09-06 09:39:22 -07:00
shardnodes.go Updated dependency paths to reflect new repo location 2022-09-06 09:39:22 -07:00
tracer.go Updated code to latest version for open-sourcing. 2022-09-02 13:23:39 -07:00
validate.go Updated code to latest version for open-sourcing. 2022-09-02 13:23:39 -07:00
validate_test.go Updated code to latest version for open-sourcing. 2022-09-02 13:23:39 -07:00
version.go Updated code to latest version for open-sourcing. 2022-09-02 13:23:39 -07:00

Go Client for Pilosa

Go client for Pilosa high performance distributed index.

Usage

If you have the pilosa repo in your GOPATH, you can import the library in your code using:

import "github.com/pilosa/pilosa/v2/client"

Quick overview

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

package main

import (
	"fmt"

	"github.com/pilosa/pilosa/v2/client"
)

func main() {
	// Create the default client
	cli := client.DefaultClient()

	// Retrieve the schema
	schema, err := cli.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 := cli.SyncSchema(schema)

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

	// Send a Row query. If err is non-nil, response will be nil.
	response, err = cli.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 = cli.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

Other Documentation