Documentation ¶
Overview ¶
Package pilosa enables querying a Pilosa server.
This client uses Pilosa's http+protobuf API.
Usage:
import ( "fmt" pilosa "github.com/pilosa/go-pilosa" ) // Create a Client instance client := pilosa.DefaultClient() // Create a Schema instance schema, err := client.Schema() if err != nil { panic(err) } // Create an Index instance index, err := schema.Index("repository") if err != nil { panic(err) } // Create a Field instance stargazer, err := index.Field("stargazer") if err != nil { panic(err) } // Sync the schema with the server-side, so non-existing indexes/fields are created on the server-side. err = client.SyncSchema(schema) if err != nil { panic(err) } // Execute a query response, err := client.Query(stargazer.Row(5)) if err != nil { panic(err) } // Act on the result fmt.Println(response.Result())
See also https://www.pilosa.com/docs/api-reference/ and https://www.pilosa.com/docs/query-language/.
Index ¶
- Constants
- Variables
- func ValidKey(key string) bool
- func ValidLabel(label string) bool
- type BoolResult
- type CacheType
- type Client
- func (c *Client) CreateField(field *Field) error
- func (c *Client) CreateIndex(index *Index) error
- func (c *Client) DeleteField(field *Field) error
- func (c *Client) DeleteIndex(index *Index) error
- func (c *Client) EnsureField(field *Field) error
- func (c *Client) EnsureIndex(index *Index) error
- func (c *Client) ExportField(field *Field) (io.Reader, error)
- func (c *Client) HttpRequest(method string, path string, data []byte, headers map[string]string) (*http.Response, []byte, error)
- func (c *Client) ImportField(field *Field, iterator RecordIterator, options ...ImportOption) error
- func (c *Client) Query(query PQLQuery, options ...interface{}) (*QueryResponse, error)
- func (c *Client) Schema() (*Schema, error)
- func (c *Client) Status() (Status, error)
- func (c *Client) SyncSchema(schema *Schema) error
- type ClientOption
- type ClientOptions
- type Cluster
- type Column
- type ColumnItem
- type CountResultItem
- type Error
- type Field
- func (field *Field) Between(a int, b int) *PQLRowQuery
- func (f *Field) Clear(rowIDOrKey, colIDOrKey interface{}) *PQLBaseQuery
- func (f *Field) ClearRow(rowIDOrKey interface{}) *PQLBaseQuery
- func (field *Field) Equals(n int) *PQLRowQuery
- func (f *Field) FilterAttrTopN(n uint64, row *PQLRowQuery, attrName string, attrValues ...interface{}) *PQLRowQuery
- func (field *Field) GT(n int) *PQLRowQuery
- func (field *Field) GTE(n int) *PQLRowQuery
- func (field *Field) LT(n int) *PQLRowQuery
- func (field *Field) LTE(n int) *PQLRowQuery
- func (field *Field) Max(row *PQLRowQuery) *PQLBaseQuery
- func (field *Field) Min(row *PQLRowQuery) *PQLBaseQuery
- func (f *Field) Name() string
- func (field *Field) NotEquals(n int) *PQLRowQuery
- func (field *Field) NotNull() *PQLRowQuery
- func (f *Field) Options() *FieldOptions
- func (f *Field) Range(rowIDOrKey interface{}, start time.Time, end time.Time) *PQLRowQuery
- func (f *Field) Row(rowIDOrKey interface{}) *PQLRowQuery
- func (f *Field) RowTopN(n uint64, row *PQLRowQuery) *PQLRowQuery
- func (f *Field) Set(rowIDOrKey, colIDOrKey interface{}) *PQLBaseQuery
- func (field *Field) SetIntValue(colIDOrKey interface{}, value int) *PQLBaseQuery
- func (f *Field) SetRowAttrs(rowIDOrKey interface{}, attrs map[string]interface{}) *PQLBaseQuery
- func (f *Field) SetTimestamp(rowIDOrKey, colIDOrKey interface{}, timestamp time.Time) *PQLBaseQuery
- func (f *Field) Store(row *PQLRowQuery, rowIDOrKey interface{}) *PQLBaseQuery
- func (f *Field) String() string
- func (field *Field) Sum(row *PQLRowQuery) *PQLBaseQuery
- func (f *Field) TopN(n uint64) *PQLRowQuery
- type FieldInfo
- type FieldOption
- func OptFieldKeys(keys bool) FieldOption
- func OptFieldTypeBool() FieldOption
- func OptFieldTypeInt(min int64, max int64) FieldOption
- func OptFieldTypeMutex(cacheType CacheType, cacheSize int) FieldOption
- func OptFieldTypeSet(cacheType CacheType, cacheSize int) FieldOption
- func OptFieldTypeTime(quantum TimeQuantum, opts ...bool) FieldOption
- type FieldOptions
- func (fo *FieldOptions) CacheSize() int
- func (fo *FieldOptions) CacheType() CacheType
- func (fo *FieldOptions) Keys() bool
- func (fo *FieldOptions) Max() int64
- func (fo *FieldOptions) Min() int64
- func (fo *FieldOptions) NoStandardView() bool
- func (fo FieldOptions) String() string
- func (fo *FieldOptions) TimeQuantum() TimeQuantum
- func (fo *FieldOptions) Type() FieldType
- type FieldType
- type FieldValue
- type ImportOption
- type ImportOptions
- type ImportStatusUpdate
- type ImportWorkerStrategy
- type Index
- func (idx *Index) BatchQuery(queries ...PQLQuery) *PQLBatchQuery
- func (idx *Index) Count(row *PQLRowQuery) *PQLBaseQuery
- func (idx *Index) Difference(rows ...*PQLRowQuery) *PQLRowQuery
- func (idx *Index) Field(name string, options ...FieldOption) *Field
- func (idx *Index) Fields() map[string]*Field
- func (idx *Index) Intersect(rows ...*PQLRowQuery) *PQLRowQuery
- func (idx *Index) Name() string
- func (idx *Index) Not(row *PQLRowQuery) *PQLRowQuery
- func (idx *Index) Options(row *PQLRowQuery, opts ...OptionsOption) *PQLBaseQuery
- func (idx *Index) RawQuery(query string) *PQLBaseQuery
- func (idx *Index) SetColumnAttrs(colIDOrKey interface{}, attrs map[string]interface{}) *PQLBaseQuery
- func (idx *Index) String() string
- func (idx *Index) Union(rows ...*PQLRowQuery) *PQLRowQuery
- func (idx *Index) Xor(rows ...*PQLRowQuery) *PQLRowQuery
- type IndexOption
- type IndexOptions
- type IntResult
- type NilResult
- type OptionsOption
- type OptionsOptions
- type PQLBaseQuery
- type PQLBatchQuery
- type PQLQuery
- type PQLRowQuery
- type QueryOption
- type QueryOptions
- type QueryResponse
- type QueryResult
- type Record
- type RecordIterator
- type RowResult
- type Schema
- type SchemaField
- type SchemaIndex
- type SchemaInfo
- type SchemaOptions
- type Status
- type StatusNode
- type StatusURI
- type TimeQuantum
- type TopNResult
- type URI
- func (u URI) Equals(other *URI) bool
- func (u *URI) Error() error
- func (u *URI) Host() string
- func (u *URI) HostPort() string
- func (u *URI) Normalize() string
- func (u *URI) Port() uint16
- func (u *URI) Scheme() string
- func (u *URI) SetHost(host string) error
- func (u *URI) SetPort(port uint16)
- func (u *URI) SetScheme(scheme string) error
- func (u *URI) Valid() bool
- type ValCountResult
Constants ¶
const ( QueryResultTypeNil uint32 = iota QueryResultTypeRow QueryResultTypePairs QueryResultTypeValCount QueryResultTypeUint64 QueryResultTypeBool )
QueryResponse types.
const CacheSizeDefault = 0
CacheSizeDefault is the default cache size
const PQLVersion = "1.0"
const Version = "v1.2.0"
Variables ¶
var ( ErrEmptyCluster = NewError("No usable addresses in the cluster") ErrIndexExists = NewError("Index exists") ErrFieldExists = NewError("Field exists") ErrInvalidIndexName = NewError("Invalid index name") ErrInvalidFieldName = NewError("Invalid field name") ErrInvalidLabel = NewError("Invalid label") ErrInvalidKey = NewError("Invalid key") ErrTriedMaxHosts = NewError("Tried max hosts, still failing") ErrAddrURIClusterExpected = NewError("Addresses, URIs or a cluster is expected") ErrInvalidQueryOption = NewError("Invalid query option") ErrInvalidIndexOption = NewError("Invalid index option") ErrInvalidFieldOption = NewError("Invalid field option") ErrNoFragmentNodes = NewError("No fragment nodes") ErrNoShard = NewError("Index has no shards") ErrUnknownType = NewError("Unknown type") )
Predefined Pilosa errors.
Functions ¶
func ValidLabel ¶
ValidLabel returns true if the given label is valid, otherwise false.
Types ¶
type BoolResult ¶ added in v0.9.0
type BoolResult bool
func (BoolResult) Changed ¶ added in v0.9.0
func (b BoolResult) Changed() bool
func (BoolResult) Count ¶ added in v0.9.0
func (BoolResult) Count() int64
func (BoolResult) CountItems ¶ added in v0.9.0
func (BoolResult) CountItems() []CountResultItem
func (BoolResult) Row ¶ added in v0.10.0
func (BoolResult) Row() RowResult
func (BoolResult) Type ¶ added in v0.9.0
func (BoolResult) Type() uint32
func (BoolResult) Value ¶ added in v0.9.0
func (BoolResult) Value() int64
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is the HTTP client for Pilosa server.
func DefaultClient ¶
func DefaultClient() *Client
DefaultClient creates a client with the default address and options.
func NewClient ¶ added in v0.8.0
func NewClient(addrUriOrCluster interface{}, options ...ClientOption) (*Client, error)
NewClient creates a client with the given address, URI, or cluster and options.
func (*Client) CreateField ¶ added in v0.10.0
CreateField creates a field on the server using the given Field struct.
func (*Client) CreateIndex ¶
CreateIndex creates an index on the server using the given Index struct.
func (*Client) DeleteField ¶ added in v0.7.0
DeleteField deletes a field on the server.
func (*Client) DeleteIndex ¶
DeleteIndex deletes an index on the server.
func (*Client) EnsureField ¶ added in v0.10.0
EnsureField creates a field on the server if it doesn't exists.
func (*Client) EnsureIndex ¶
EnsureIndex creates an index on the server if it does not exist.
func (*Client) ExportField ¶ added in v0.10.0
ExportField exports columns for a field.
func (*Client) HttpRequest ¶ added in v0.8.0
func (c *Client) HttpRequest(method string, path string, data []byte, headers map[string]string) (*http.Response, []byte, error)
HttpRequest sends an HTTP request to the Pilosa server. **NOTE**: This function is experimental and may be removed in later revisions.
func (*Client) ImportField ¶ added in v0.10.0
func (c *Client) ImportField(field *Field, iterator RecordIterator, options ...ImportOption) error
ImportField imports records from the given iterator.
func (*Client) Query ¶
func (c *Client) Query(query PQLQuery, options ...interface{}) (*QueryResponse, error)
Query runs the given query against the server with the given options. Pass nil for default options.
func (*Client) SyncSchema ¶ added in v0.5.0
SyncSchema updates a schema with the indexes and fields on the server and creates the indexes and fields in the schema on the server side. This function does not delete indexes and the fields on the server side nor in the schema.
type ClientOption ¶ added in v0.8.0
type ClientOption func(options *ClientOptions) error
ClientOption is used when creating a PilosaClient struct.
func OptClientConnectTimeout ¶ added in v0.9.0
func OptClientConnectTimeout(timeout time.Duration) ClientOption
OptClientConnectTimeout is the maximum time to connect in nanoseconds.
func OptClientPoolSizePerRoute ¶ added in v0.9.0
func OptClientPoolSizePerRoute(size int) ClientOption
OptPoolSizePerRoute is the maximum number of active connections in the pool to a host.
func OptClientSocketTimeout ¶ added in v0.9.0
func OptClientSocketTimeout(timeout time.Duration) ClientOption
OptClientSocketTimeout is the maximum idle socket time in nanoseconds
func OptClientTLSConfig ¶ added in v0.9.0
func OptClientTLSConfig(config *tls.Config) ClientOption
OptClientTLSConfig contains the TLS configuration.
func OptClientTotalPoolSize ¶ added in v0.9.0
func OptClientTotalPoolSize(size int) ClientOption
OptClientTotalPoolSize is the maximum number of connections in the pool.
type ClientOptions ¶
type ClientOptions struct { SocketTimeout time.Duration ConnectTimeout time.Duration PoolSizePerRoute int TotalPoolSize int TLSConfig *tls.Config }
ClientOptions control the properties of client connection to the server.
type Cluster ¶
type Cluster struct {
// contains filtered or unexported fields
}
Cluster contains hosts in a Pilosa cluster.
func NewClusterWithHost ¶
NewClusterWithHost returns a cluster with the given URIs.
func (*Cluster) RemoveHost ¶
RemoveHost black lists the host with the given URI from the cluster.
type ColumnItem ¶
type ColumnItem struct { ID uint64 `json:"id,omitempty"` Key string `json:"key,omitempty"` Attributes map[string]interface{} `json:"attributes,omitempty"` }
ColumnItem represents data about a column. Column data is only returned if QueryOptions.Columns was set to true.
type CountResultItem ¶
type CountResultItem struct { ID uint64 `json:"id"` Key string `json:"key,omitempty"` Count uint64 `json:"count"` }
CountResultItem represents a result from TopN call.
func (*CountResultItem) String ¶ added in v0.8.0
func (c *CountResultItem) String() string
type Field ¶ added in v0.10.0
type Field struct {
// contains filtered or unexported fields
}
Field structs are used to segment and define different functional characteristics within your entire index. You can think of a Field as a table-like data partition within your Index. Row-level attributes are namespaced at the Field level.
func (*Field) Between ¶ added in v0.10.0
func (field *Field) Between(a int, b int) *PQLRowQuery
Between creates a between query.
func (*Field) Clear ¶ added in v0.10.0
func (f *Field) Clear(rowIDOrKey, colIDOrKey interface{}) *PQLBaseQuery
Clear creates a Clear query. Clear, assigns a value of 0 to a bit in the binary matrix, thus disassociating the given row in the given field from the given column.
func (*Field) ClearRow ¶ added in v1.2.0
func (f *Field) ClearRow(rowIDOrKey interface{}) *PQLBaseQuery
ClearRow creates a ClearRow query. ClearRow sets all bits to 0 in a given row of the binary matrix, thus disassociating the given row in the given field from all columns.
func (*Field) Equals ¶ added in v0.10.0
func (field *Field) Equals(n int) *PQLRowQuery
Equals creates an equals query.
func (*Field) FilterAttrTopN ¶ added in v0.10.0
func (f *Field) FilterAttrTopN(n uint64, row *PQLRowQuery, attrName string, attrValues ...interface{}) *PQLRowQuery
FilterAttrTopN creates a TopN query with the given item count, row, attribute name and filter values for that field The attrName and attrValues arguments work together to only return Rows which have the attribute specified by attrName with one of the values specified in attrValues.
func (*Field) GT ¶ added in v0.10.0
func (field *Field) GT(n int) *PQLRowQuery
GT creates a greater than query.
func (*Field) GTE ¶ added in v0.10.0
func (field *Field) GTE(n int) *PQLRowQuery
GTE creates a greater than or equal query.
func (*Field) LT ¶ added in v0.10.0
func (field *Field) LT(n int) *PQLRowQuery
LT creates a less than query.
func (*Field) LTE ¶ added in v0.10.0
func (field *Field) LTE(n int) *PQLRowQuery
LTE creates a less than or equal query.
func (*Field) Max ¶ added in v0.10.0
func (field *Field) Max(row *PQLRowQuery) *PQLBaseQuery
Max creates a min query.
func (*Field) Min ¶ added in v0.10.0
func (field *Field) Min(row *PQLRowQuery) *PQLBaseQuery
Min creates a min query.
func (*Field) NotEquals ¶ added in v0.10.0
func (field *Field) NotEquals(n int) *PQLRowQuery
NotEquals creates a not equals query.
func (*Field) NotNull ¶ added in v0.10.0
func (field *Field) NotNull() *PQLRowQuery
NotNull creates a not equal to null query.
func (*Field) Options ¶ added in v0.10.0
func (f *Field) Options() *FieldOptions
Options returns the options set for the field. Which fields of the FieldOptions struct are actually being used depends on the field's type.
func (*Field) Range ¶ added in v0.10.0
Range creates a Range query. Similar to Row, but only returns columns which were set with timestamps between the given start and end timestamps.
func (*Field) Row ¶ added in v0.10.0
func (f *Field) Row(rowIDOrKey interface{}) *PQLRowQuery
Row creates a Row query. Row retrieves the indices of all the set columns in a row. It also retrieves any attributes set on that row or column.
func (*Field) RowTopN ¶ added in v0.10.0
func (f *Field) RowTopN(n uint64, row *PQLRowQuery) *PQLRowQuery
RowTopN creates a TopN query with the given item count and row. This variant supports customizing the row query.
func (*Field) Set ¶ added in v0.10.0
func (f *Field) Set(rowIDOrKey, colIDOrKey interface{}) *PQLBaseQuery
Set creates a Set query. Set, assigns a value of 1 to a bit in the binary matrix, thus associating the given row in the given field with the given column.
func (*Field) SetIntValue ¶ added in v0.10.0
func (field *Field) SetIntValue(colIDOrKey interface{}, value int) *PQLBaseQuery
SetIntValue creates a Set query.
func (*Field) SetRowAttrs ¶ added in v0.10.0
func (f *Field) SetRowAttrs(rowIDOrKey interface{}, attrs map[string]interface{}) *PQLBaseQuery
SetRowAttrs creates a SetRowAttrs query. SetRowAttrs associates arbitrary key/value pairs with a row in a field. Following types are accepted: integer, float, string and boolean types.
func (*Field) SetTimestamp ¶ added in v0.10.0
func (f *Field) SetTimestamp(rowIDOrKey, colIDOrKey interface{}, timestamp time.Time) *PQLBaseQuery
SetTimestamp creates a Set query with timestamp. Set, assigns a value of 1 to a column in the binary matrix, thus associating the given row in the given field with the given column.
func (*Field) Store ¶ added in v1.2.0
func (f *Field) Store(row *PQLRowQuery, rowIDOrKey interface{}) *PQLBaseQuery
Store creates a Store call. Store writes the result of the row query to the specified row. If the row already exists, it will be replaced. The destination field must be of field type set.
func (*Field) Sum ¶ added in v0.10.0
func (field *Field) Sum(row *PQLRowQuery) *PQLBaseQuery
Sum creates a sum query.
func (*Field) TopN ¶ added in v0.10.0
func (f *Field) TopN(n uint64) *PQLRowQuery
TopN creates a TopN query with the given item count. Returns the id and count of the top n rows (by count of columns) in the field.
type FieldInfo ¶ added in v0.10.0
type FieldInfo struct {
Name string `json:"name"`
}
FieldInfo represents schema information for a field.
type FieldOption ¶ added in v0.10.0
type FieldOption func(options *FieldOptions)
FieldOption is used to pass an option to index.Field function.
func OptFieldKeys ¶ added in v0.10.0
func OptFieldKeys(keys bool) FieldOption
OptFieldKeys sets whether field uses string keys.
func OptFieldTypeBool ¶ added in v1.2.0
func OptFieldTypeBool() FieldOption
OptFieldTypeBool adds a bool field.
func OptFieldTypeInt ¶ added in v0.10.0
func OptFieldTypeInt(min int64, max int64) FieldOption
OptFieldTypeInt adds an integer field.
func OptFieldTypeMutex ¶ added in v1.2.0
func OptFieldTypeMutex(cacheType CacheType, cacheSize int) FieldOption
OptFieldTypeMutex adds a mutex field.
func OptFieldTypeSet ¶ added in v0.10.0
func OptFieldTypeSet(cacheType CacheType, cacheSize int) FieldOption
OptFieldTypeSet adds a set field. Specify CacheTypeDefault for the default cache type. Specify CacheSizeDefault for the default cache size.
func OptFieldTypeTime ¶ added in v0.10.0
func OptFieldTypeTime(quantum TimeQuantum, opts ...bool) FieldOption
OptFieldTypeTime adds a time field.
type FieldOptions ¶ added in v0.10.0
type FieldOptions struct {
// contains filtered or unexported fields
}
FieldOptions contains options to customize Field objects and field queries.
func (*FieldOptions) CacheSize ¶ added in v0.10.0
func (fo *FieldOptions) CacheSize() int
CacheSize returns the cache size for a set field. Zero otherwise.
func (*FieldOptions) CacheType ¶ added in v0.10.0
func (fo *FieldOptions) CacheType() CacheType
CacheType returns the configured cache type for a "set" field. Empty string otherwise.
func (*FieldOptions) Keys ¶ added in v1.2.0
func (fo *FieldOptions) Keys() bool
Keys returns whether this field uses keys instead of IDs
func (*FieldOptions) Max ¶ added in v0.10.0
func (fo *FieldOptions) Max() int64
Max returns the maximum accepted value for an integer field. Zero otherwise.
func (*FieldOptions) Min ¶ added in v0.10.0
func (fo *FieldOptions) Min() int64
Min returns the minimum accepted value for an integer field. Zero otherwise.
func (*FieldOptions) NoStandardView ¶ added in v1.2.0
func (fo *FieldOptions) NoStandardView() bool
NoStandardView suppresses creating the standard view for supported field types (currently, time)
func (FieldOptions) String ¶ added in v0.10.0
func (fo FieldOptions) String() string
func (*FieldOptions) TimeQuantum ¶ added in v0.10.0
func (fo *FieldOptions) TimeQuantum() TimeQuantum
TimeQuantum returns the configured time quantum for a time field. Empty string otherwise.
func (*FieldOptions) Type ¶ added in v0.10.0
func (fo *FieldOptions) Type() FieldType
Type returns the type of the field. Currently "set", "int", or "time".
type FieldValue ¶ added in v0.7.0
FieldValue represents the value for a column within a range-encoded field.
func (FieldValue) Less ¶ added in v0.9.0
func (v FieldValue) Less(other Record) bool
func (FieldValue) Shard ¶ added in v0.10.0
func (v FieldValue) Shard(shardWidth uint64) uint64
type ImportOption ¶ added in v0.9.0
type ImportOption func(options *ImportOptions) error
ImportOption is used when running imports.
func OptImportBatchSize ¶ added in v0.9.0
func OptImportBatchSize(batchSize int) ImportOption
func OptImportClear ¶ added in v1.2.0
func OptImportClear(clear bool) ImportOption
func OptImportStatusChannel ¶ added in v0.9.0
func OptImportStatusChannel(statusChan chan<- ImportStatusUpdate) ImportOption
func OptImportThreadCount ¶ added in v0.9.0
func OptImportThreadCount(count int) ImportOption
type ImportOptions ¶ added in v0.9.0
type ImportOptions struct {
// contains filtered or unexported fields
}
type ImportStatusUpdate ¶ added in v0.9.0
type ImportWorkerStrategy ¶ added in v0.9.0
type ImportWorkerStrategy int
const ( DefaultImport ImportWorkerStrategy = iota BatchImport TimeoutImport )
type Index ¶
type Index struct {
// contains filtered or unexported fields
}
Index is a Pilosa index. The purpose of the Index is to represent a data namespace. You cannot perform cross-index queries. Column-level attributes are global to the Index.
func (*Index) BatchQuery ¶
func (idx *Index) BatchQuery(queries ...PQLQuery) *PQLBatchQuery
BatchQuery creates a batch query with the given queries.
func (*Index) Count ¶
func (idx *Index) Count(row *PQLRowQuery) *PQLBaseQuery
Count creates a Count query. Returns the number of set columns in the ROW_CALL passed in.
func (*Index) Difference ¶
func (idx *Index) Difference(rows ...*PQLRowQuery) *PQLRowQuery
Difference creates an Intersect query. Difference returns all of the columns from the first ROW_CALL argument passed to it, without the columns from each subsequent ROW_CALL.
func (*Index) Field ¶ added in v0.10.0
func (idx *Index) Field(name string, options ...FieldOption) *Field
Field creates a Field struct with the specified name and defaults.
func (*Index) Intersect ¶
func (idx *Index) Intersect(rows ...*PQLRowQuery) *PQLRowQuery
Intersect creates an Intersect query. Intersect performs a logical AND on the results of each ROW_CALL query passed to it.
func (*Index) Not ¶ added in v1.1.0
func (idx *Index) Not(row *PQLRowQuery) *PQLRowQuery
func (*Index) Options ¶ added in v1.2.0
func (idx *Index) Options(row *PQLRowQuery, opts ...OptionsOption) *PQLBaseQuery
Options creates an Options query.
func (*Index) RawQuery ¶
func (idx *Index) RawQuery(query string) *PQLBaseQuery
RawQuery creates a query with the given string. Note that the query is not validated before sending to the server.
func (*Index) SetColumnAttrs ¶
func (idx *Index) SetColumnAttrs(colIDOrKey interface{}, attrs map[string]interface{}) *PQLBaseQuery
SetColumnAttrs creates a SetColumnAttrs query. SetColumnAttrs associates arbitrary key/value pairs with a column in an index. Following types are accepted: integer, float, string and boolean types.
func (*Index) Union ¶
func (idx *Index) Union(rows ...*PQLRowQuery) *PQLRowQuery
Union creates a Union query. Union performs a logical OR on the results of each ROW_CALL query passed to it.
func (*Index) Xor ¶ added in v0.7.0
func (idx *Index) Xor(rows ...*PQLRowQuery) *PQLRowQuery
Xor creates an Xor query.
type IndexOption ¶ added in v0.10.0
type IndexOption func(options *IndexOptions)
IndexOption is used to pass an option to Index function.
func OptIndexKeys ¶ added in v0.10.0
func OptIndexKeys(keys bool) IndexOption
OptIndexKeys sets whether index uses string keys.
func OptIndexTrackExistence ¶ added in v1.1.0
func OptIndexTrackExistence(trackExistence bool) IndexOption
OptIndexTrackExistence enables keeping track of existence of columns.
type IndexOptions ¶
type IndexOptions struct {
// contains filtered or unexported fields
}
IndexOptions contains options to customize Index objects.
func (IndexOptions) Keys ¶ added in v1.2.0
func (io IndexOptions) Keys() bool
func (IndexOptions) String ¶
func (io IndexOptions) String() string
func (IndexOptions) TrackExistence ¶ added in v1.2.0
func (io IndexOptions) TrackExistence() bool
type IntResult ¶ added in v0.9.0
type IntResult int64
func (IntResult) CountItems ¶ added in v0.9.0
func (IntResult) CountItems() []CountResultItem
type NilResult ¶ added in v0.9.0
type NilResult struct{}
func (NilResult) CountItems ¶ added in v0.9.0
func (NilResult) CountItems() []CountResultItem
type OptionsOption ¶ added in v1.2.0
type OptionsOption func(options *OptionsOptions)
func OptOptionsColumnAttrs ¶ added in v1.2.0
func OptOptionsColumnAttrs(enable bool) OptionsOption
OptOptionsColumnAttrs enables returning column attributes.
func OptOptionsExcludeColumns ¶ added in v1.2.0
func OptOptionsExcludeColumns(enable bool) OptionsOption
OptOptionsExcludeColumns enables preventing returning columns.
func OptOptionsExcludeRowAttrs ¶ added in v1.2.0
func OptOptionsExcludeRowAttrs(enable bool) OptionsOption
OptOptionsExcludeRowAttrs enables preventing returning row attributes.
func OptOptionsShards ¶ added in v1.2.0
func OptOptionsShards(shards ...uint64) OptionsOption
OptOptionsShards run the query using only the data from the given shards. By default, the entire data set (i.e. data from all shards) is used.
type OptionsOptions ¶ added in v1.2.0
type OptionsOptions struct {
// contains filtered or unexported fields
}
OptionsOptions is used to pass an option to Option call.
type PQLBaseQuery ¶
type PQLBaseQuery struct {
// contains filtered or unexported fields
}
PQLBaseQuery is the base implementation for PQLQuery.
func NewPQLBaseQuery ¶
func NewPQLBaseQuery(pql string, index *Index, err error) *PQLBaseQuery
NewPQLBaseQuery creates a new PQLQuery with the given PQL and index.
func (PQLBaseQuery) Error ¶
func (q PQLBaseQuery) Error() error
Error returns the error or nil for this query.
func (*PQLBaseQuery) Index ¶
func (q *PQLBaseQuery) Index() *Index
Index returns the index for this query
type PQLBatchQuery ¶
type PQLBatchQuery struct {
// contains filtered or unexported fields
}
PQLBatchQuery contains a batch of PQL queries. Use Index.BatchQuery function to create an instance.
Usage:
index, err := NewIndex("repository") stargazer, err := index.Field("stargazer") query := repo.BatchQuery( stargazer.Row(5), stargazer.Row(15), repo.Union(stargazer.Row(20), stargazer.Row(25)))
func (*PQLBatchQuery) Add ¶
func (q *PQLBatchQuery) Add(query PQLQuery)
Add adds a query to the batch.
func (*PQLBatchQuery) Error ¶
func (q *PQLBatchQuery) Error() error
func (*PQLBatchQuery) Index ¶
func (q *PQLBatchQuery) Index() *Index
Index returns the index for this query.
type PQLRowQuery ¶ added in v0.10.0
type PQLRowQuery struct {
// contains filtered or unexported fields
}
PQLRowQuery is the return type for row queries.
func NewPQLRowQuery ¶ added in v0.10.0
func NewPQLRowQuery(pql string, index *Index, err error) *PQLRowQuery
NewPQLRowQuery creates a new PqlRowQuery.
func (PQLRowQuery) Error ¶ added in v0.10.0
func (q PQLRowQuery) Error() error
Error returns the error or nil for this query.
func (*PQLRowQuery) Index ¶ added in v0.10.0
func (q *PQLRowQuery) Index() *Index
Index returns the index for this query/
type QueryOption ¶ added in v0.8.0
type QueryOption func(options *QueryOptions) error
QueryOption is used when using options with a client.Query,
func OptQueryColumnAttrs ¶ added in v0.9.0
func OptQueryColumnAttrs(enable bool) QueryOption
OptQueryColumnAttrs enables returning column attributes in the result.
func OptQueryExcludeAttrs ¶ added in v0.9.0
func OptQueryExcludeAttrs(enable bool) QueryOption
OptQueryExcludeAttrs enables discarding attributes from a result,
func OptQueryExcludeColumns ¶ added in v0.10.0
func OptQueryExcludeColumns(enable bool) QueryOption
OptQueryExcludeColumns enables discarding columns from a result,
func OptQueryShards ¶ added in v0.10.0
func OptQueryShards(shards ...uint64) QueryOption
OptQueryShards restricts the set of shards on which a query operates.
type QueryOptions ¶
type QueryOptions struct { // Shards restricts query to a subset of shards. Queries all shards if nil. Shards []uint64 // ColumnAttrs enables returning columns in the query response. ColumnAttrs bool // ExcludeRowAttrs inhibits returning attributes ExcludeRowAttrs bool // ExcludeColumns inhibits returning columns ExcludeColumns bool }
QueryOptions contains options to customize the Query function.
type QueryResponse ¶
type QueryResponse struct { ResultList []QueryResult `json:"results,omitempty"` ColumnList []ColumnItem `json:"columns,omitempty"` ErrorMessage string `json:"error-message,omitempty"` Success bool `json:"success,omitempty"` }
QueryResponse represents the response from a Pilosa query.
func (*QueryResponse) Column ¶
func (qr *QueryResponse) Column() ColumnItem
Column returns the first column.
func (*QueryResponse) Columns ¶
func (qr *QueryResponse) Columns() []ColumnItem
Columns returns all columns in the response.
func (*QueryResponse) Result ¶
func (qr *QueryResponse) Result() QueryResult
Result returns the first result or nil.
func (*QueryResponse) Results ¶
func (qr *QueryResponse) Results() []QueryResult
Results returns all results in the response.
type QueryResult ¶
type QueryResult interface { Type() uint32 Row() RowResult CountItems() []CountResultItem Count() int64 Value() int64 Changed() bool }
QueryResult represents one of the results in the response.
type RecordIterator ¶ added in v0.9.0
type RowResult ¶ added in v0.10.0
type RowResult struct { Attributes map[string]interface{} `json:"attrs"` Columns []uint64 `json:"columns"` Keys []string `json:"keys"` }
RowResult represents a result from Row, Union, Intersect, Difference and Range PQL calls.
func (RowResult) CountItems ¶ added in v0.10.0
func (RowResult) CountItems() []CountResultItem
func (RowResult) MarshalJSON ¶ added in v0.10.0
type Schema ¶
type Schema struct {
// contains filtered or unexported fields
}
Schema contains the index properties
func (*Schema) Index ¶ added in v0.5.0
func (s *Schema) Index(name string, options ...IndexOption) *Index
Index returns an index with a name.
type SchemaField ¶ added in v1.1.0
type SchemaField struct { Name string `json:"name"` Options SchemaOptions `json:"options"` }
SchemaField contains field information.
type SchemaIndex ¶ added in v1.1.0
type SchemaIndex struct { Name string `json:"name"` Options SchemaOptions `json:"options"` Fields []SchemaField `json:"fields"` Shards []uint64 `json:"shards"` }
SchemaIndex contains index information.
type SchemaInfo ¶ added in v0.9.0
type SchemaInfo struct {
Indexes []SchemaIndex `json:"indexes"`
}
type SchemaOptions ¶ added in v1.1.0
type SchemaOptions struct { FieldType FieldType `json:"type"` CacheType string `json:"cacheType"` CacheSize uint `json:"cacheSize"` TimeQuantum string `json:"timeQuantum"` Min int64 `json:"min"` Max int64 `json:"max"` Keys bool `json:"keys"` NoStandardView bool `json:"noStandardView"` TrackExistence bool `json:"trackExistence"` }
SchemaOptions contains options for a field or an index.
type Status ¶ added in v0.5.0
type Status struct { Nodes []StatusNode `json:"nodes"` State string `json:"state"` LocalID string `json:"localID"` // contains filtered or unexported fields }
Status contains the status information from a Pilosa server.
type StatusNode ¶ added in v0.5.0
type StatusURI ¶ added in v1.1.0
type StatusURI struct { Scheme string `json:"scheme"` Host string `json:"host"` Port uint16 `json:"port"` }
StatusURI contains node information.
type TimeQuantum ¶
type TimeQuantum string
TimeQuantum type represents valid time quantum values time fields.
const ( TimeQuantumNone TimeQuantum = "" TimeQuantumYear TimeQuantum = "Y" TimeQuantumMonth TimeQuantum = "M" TimeQuantumDay TimeQuantum = "D" TimeQuantumHour TimeQuantum = "H" TimeQuantumYearMonth TimeQuantum = "YM" TimeQuantumMonthDay TimeQuantum = "MD" TimeQuantumDayHour TimeQuantum = "DH" TimeQuantumYearMonthDay TimeQuantum = "YMD" TimeQuantumMonthDayHour TimeQuantum = "MDH" TimeQuantumYearMonthDayHour TimeQuantum = "YMDH" )
TimeQuantum constants
type TopNResult ¶ added in v0.9.0
type TopNResult []CountResultItem
func (TopNResult) Changed ¶ added in v0.9.0
func (TopNResult) Changed() bool
func (TopNResult) Count ¶ added in v0.9.0
func (TopNResult) Count() int64
func (TopNResult) CountItems ¶ added in v0.9.0
func (t TopNResult) CountItems() []CountResultItem
func (TopNResult) Row ¶ added in v0.10.0
func (TopNResult) Row() RowResult
func (TopNResult) Type ¶ added in v0.9.0
func (TopNResult) Type() uint32
func (TopNResult) Value ¶ added in v0.9.0
func (TopNResult) Value() int64
type URI ¶
type URI struct {
// contains filtered or unexported fields
}
URI represents a Pilosa URI. A Pilosa URI consists of three parts: 1) Scheme: Protocol of the URI. Default: http. 2) Host: Hostname or IP URI. Default: localhost. IPv6 addresses should be written in brackets, e.g., `[fd42:4201:f86b:7e09:216:3eff:fefa:ed80]`. 3) Port: Port of the URI. Default: 10101.
All parts of the URI are optional. The following are equivalent:
http://localhost:10101 http://localhost http://:10101 localhost:10101 localhost :10101
func NewURIFromAddress ¶
NewURIFromAddress parses the passed address and returns a URI.
func NewURIFromHostPort ¶
NewURIFromHostPort returns a URI with specified host and port.
func URIFromAddress ¶ added in v0.8.0
URIFromAddress creates a URI from the given address.
type ValCountResult ¶ added in v0.9.0
func (ValCountResult) Changed ¶ added in v0.9.0
func (ValCountResult) Changed() bool
func (ValCountResult) Count ¶ added in v0.9.0
func (c ValCountResult) Count() int64
func (ValCountResult) CountItems ¶ added in v0.9.0
func (ValCountResult) CountItems() []CountResultItem
func (ValCountResult) Row ¶ added in v0.10.0
func (ValCountResult) Row() RowResult
func (ValCountResult) Type ¶ added in v0.9.0
func (ValCountResult) Type() uint32
func (ValCountResult) Value ¶ added in v0.9.0
func (c ValCountResult) Value() int64
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package gopilosa_pbuf is a generated protocol buffer package.
|
Package gopilosa_pbuf is a generated protocol buffer package. |