milvus

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 7, 2020 License: Apache-2.0 Imports: 11 Imported by: 3

Documentation

Overview

package milvus

package milvus

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ParseDsl added in v0.5.0

func ParseDsl(dslString *string, vectorParam *string, vectorRecord *pb.VectorRecord) (string, error)

Types

type CompactParam added in v0.5.0

type CompactParam struct {
	CollectionName string
	// contains filtered or unexported fields
}

type ConnectParam

type ConnectParam struct {
	// IPAddress Server IP address
	IPAddress string
	// Port Server port
	Port int64
}

ConnectParam Parameters for connect

type DataType added in v0.5.0

type DataType int

DataType

const (
	BOOL         DataType = 1
	INT32        DataType = 4
	INT64        DataType = 5
	FLOAT        DataType = 10
	DOUBLE       DataType = 11
	VECTORBINARY DataType = 100
	VECTORFLOAT  DataType = 101
)

type Entity

type Entity struct {
	EntityId int64
	Entity   map[string]interface{}
}

Entity

type ErrorCode

type ErrorCode int64

ErrorCode error code

const (
	// OK status
	OK ErrorCode = 0

	// UnKnownError unknow error
	UnKnownError ErrorCode = 1
	// NotSupported not supported operation
	NotSupported ErrorCode = 2
	// NotConnected not connected
	NotConnected ErrorCode = 3

	// RPCFailed rpc failed
	RPCFailed ErrorCode = 4
	// ServerFailed server failed
	ServerFailed ErrorCode = 5
)

type Field added in v0.5.0

type Field struct {
	Name        string
	Type        DataType
	IndexParams *Params
	ExtraParams *Params
}

Field

type FieldValue added in v0.5.0

type FieldValue struct {
	Name    string
	RawData interface{}
}

FieldValue

type IndexParam

type IndexParam struct {
	// CollectionName collection name for create index
	CollectionName string
	// FieldName field name for create index
	FieldName string
	// IndexParams string
	// ExtraParams extra parameters
	// 	Note: extra_params is extra parameters list, it must be json format
	//        For different index type, parameter list is different accordingly, for example:
	//        FLAT/IVFLAT/SQ8:  "{nlist: '16384'}"
	//            ///< nlist range:[1, 999999]
	//        IVFPQ:  "{nlist: '16384', m: "12"}"
	//            ///< nlist range:[1, 999999]
	//            ///< m is decided by dim and have a couple of results.
	//        NSG:  "{search_length: '45', out_degree:'50', candidate_pool_size:'300', "knng":'100'}"
	//            ///< search_length range:[10, 300]
	//            ///< out_degree range:[5, 300]
	//            ///< candidate_pool_size range:[50, 1000]
	//            ///< knng range:[5, 300]
	//        HNSW  "{M: '16', efConstruction:'500'}"
	//            ///< M range:[5, 48]
	//            ///< efConstruction range:[topk, 4096]
	IndexParams map[string]interface{}
}

IndexParam index parameters

type IndexType

type IndexType string

IndexType index type

const (
	// FLAT flat
	FLAT IndexType = "FLAT"
	// BINFLAT bin_flat
	BINFLAT IndexType = "BIN_FLAT"
	// IVFFLAT ivfflat
	IVFFLAT IndexType = "IVF_FLAT"
	// BINIVFFLAT bin_ivf_flat
	BINIVFFLAT IndexType = "BIN_IVF_FLAT"

	// IVFSQ8 ivfsq8
	IVFSQ8 IndexType = "IVF_SQ8"
	//RNSG rnsg
	RNSG IndexType = "RNSG"
	// IVFSQ8H ivfsq8h
	IVFSQ8H IndexType = "IVF_SQ8_HYBRID"
	// IVFPQ ivfpq
	IVFPQ IndexType = "IVF_PQ"
	// SPTAGKDT sptagkdt
	SPTAGKDT IndexType = "SPTAG_KDT_RNT"
	// SPTAGBKT sptagbkt
	SPTAGBKT IndexType = "SPTAG_BKT_RNT"
	// HNSW
	HNSW IndexType = "HNSW"
	// ANNOY annoy
	ANNOY IndexType = "ANNOY"
	// RHNSWFLAT rhsw_flat
	RHNSWFLAT IndexType = "RHNSW_FLAT"
	// RHNSWPQ RHNSW_PQ
	RHNSWPQ IndexType = "RHNSW_PQ"
	// RHNSWSQ8 RHNSW_SQ8
	RHNSWSQ8 IndexType = "RHNSW_SQ8"

	// SORTED a scalar index
	SORTED IndexType = "SORTED"
)

type InsertParam

type InsertParam struct {
	// CollectionName collection name
	CollectionName string
	// RecordArray raw entities array
	Fields []FieldValue
	// IDArray id array
	IDArray []int64
	// PartitionTag partition tag
	PartitionTag string
}

InsertParam insert parameters

type ListIDInSegmentParam added in v0.4.0

type ListIDInSegmentParam struct {
	CollectionName string
	SegmentId      int64
}

type Mapping added in v0.5.0

type Mapping struct {
	// CollectionName collection name
	CollectionName string
	// Fields fields
	Fields []Field
	// ExtraParams extra params
	ExtraParams *Params
}

CollectionParam informations of a collection

type MetricType

type MetricType string

MetricType metric type

const (
	// L2 euclidean distance
	L2 MetricType = "L2"
	// IP inner product
	IP MetricType = "IP"
	// HAMMING hamming distance
	HAMMING MetricType = "HAMMING"
	// JACCARD jaccard distance
	JACCARD MetricType = "JACCARD"
	// TANIMOTO tanimoto distance
	TANIMOTO MetricType = "TANIMOTO"
	// SUBSTRUCTURE substructure distance
	SUBSTRUCTURE MetricType = "SUBSTRUCTURE"
	// SUPERSTRUCTURE superstructure
	SUPERSTRUCTURE MetricType = "SUPERSTRUCTURE"
)

type MilvusClient

type MilvusClient interface {

	// GetClientVersion method
	// This method is used to give the client version.
	// return Client version.
	GetClientVersion(ctx context.Context) string

	// Connect method
	// Create a connection instance and return it's shared pointer
	// return indicate if connect is successful
	Connect(ctx context.Context, connectParam ConnectParam) error

	// IsConnected method
	// This method is used to test whether server is connected
	// return indicate if connection status
	IsConnected(ctx context.Context) bool

	// Disconnect method
	// This method is used to disconnect server
	// return indicate if disconnect is successful
	Disconnect(ctx context.Context) error

	// CreateCollection method
	// This method is used to create collection
	// param collectionParam is used to provide collection information to be created.
	// return indicate if collection is created successfully
	CreateCollection(ctx context.Context, mapping Mapping) (Status, error)

	// HasCollection method
	// This method is used to create collection.
	//return indicate if collection is exist
	HasCollection(ctx context.Context, collectionName string) (bool, Status, error)

	// DropCollection method
	// This method is used to drop collection(and its partitions).
	// return indicate if collection is drop successfully.
	DropCollection(ctx context.Context, collectionName string) (Status, error)

	// CreateIndex method
	// This method is used to create index for whole collection(and its partitions).
	// return indicate if build index successfully.
	CreateIndex(ctx context.Context, indexParam *IndexParam) (Status, error)

	// Insert method
	// This method is used to query entity in collection.
	// return indicate if insert is successful.
	Insert(ctx context.Context, insertParam InsertParam) ([]int64, Status, error)

	// GetEntityByID method
	// This method is used to get entity by entity id
	// return entity data
	GetEntityByID(ctx context.Context, collectionName string, fields []string, entityId []int64) ([]Entity, Status, error)

	// ListIDInSegment method
	// This method is used to get entity ids
	// return entity ids
	ListIDInSegment(ctx context.Context, listIDInSegmentParam ListIDInSegmentParam) ([]int64, Status, error)

	// Search method
	// This method is used to query entity in collection.
	// return indicate if query is successful.
	Search(ctx context.Context, searchParam SearchParam) (TopkQueryResult, Status, error)

	// DeleteEntityByID method
	// This method is used to delete entities by ids
	// return indicate if delete is successful
	DeleteEntityByID(ctx context.Context, collectionName string, id_array []int64) (Status, error)

	// GetCollectionInfo method
	// This method is used to show collection information.
	//return indicate if this operation is successful.
	GetCollectionInfo(ctx context.Context, collectionName string) (Mapping, Status, error)

	// CountEntities method
	// This method is used to get collection row count.
	// return indicate if this operation is successful.
	CountEntities(ctx context.Context, collectionName string) (int64, Status, error)

	// ListCollections method
	// This method is used to list all collections.
	// return indicate if this operation is successful.
	ListCollections(ctx context.Context) ([]string, Status, error)

	// GetCollectionStats method
	// This method is used to get collection informations
	// return collection informations
	GetCollectionStats(ctx context.Context, collectionName string) (string, Status, error)

	// ServerVersion method
	// This method is used to give the server version.
	// return server version.
	ServerVersion(ctx context.Context) (string, Status, error)

	// ServerStatus method
	// This method is used to give the server status.
	// return server status.
	ServerStatus(ctx context.Context) (string, Status, error)

	// LoadCollection method
	// This method is used to preload collection
	// return indicate if this operation is successful.
	LoadCollection(ctx context.Context, collectionName string) (Status, error)

	// DropIndex method
	// This method is used to drop index of collection(and its partitions)
	// return indicate if this operation is successful.
	DropIndex(ctx context.Context, collectionName string, fieldName string) (Status, error)

	// CreatePartition method
	// This method is used to create collection partition
	// return indicate if partition is created successfully
	CreatePartition(ctx context.Context, partitionParam PartitionParam) (Status, error)

	// ListPartitions method
	// This method is used to list partitions
	// return indicate if this operation is successful
	ListPartitions(ctx context.Context, collectionName string) ([]PartitionParam, Status, error)

	// HasPartitions method
	// This method is used to create collection
	// return indicate if this operation is successful
	HasPartition(ctx context.Context, param PartitionParam) (bool, Status, error)

	// DropPartition method
	// This method is used to delete collection partition.
	// return indicate if partition is delete successfully.
	DropPartition(ctx context.Context, partitionParam PartitionParam) (Status, error)

	// GetConfig
	// This method is used to get config
	// return indicate if this operation is successful.
	GetConfig(ctx context.Context, nodeName string) (string, Status, error)

	// SetConfig
	// This method is used to set config
	// return indicate if this operation is successful.
	SetConfig(ctx context.Context, nodeName string, value string) (Status, error)

	// Flush method
	// This method is used to flush collections
	// return indicate if flush is successful
	Flush(ctx context.Context, collectionNameArray []string) (Status, error)

	// Compact method
	// This method is used to compact collection
	// return indicate if compact is successful
	Compact(ctx context.Context, compactParam CompactParam) (Status, error)
}

MilvusClient SDK main interface

func NewMilvusClient

func NewMilvusClient(ctx context.Context, connectParam ConnectParam) (MilvusClient, error)

NewMilvusClient is the constructor of MilvusClient

type MilvusGrpcClient

type MilvusGrpcClient interface {
	CreateCollection(ctx context.Context, mapping pb.Mapping) (pb.Status, error)

	HasCollection(ctx context.Context, collectionName pb.CollectionName) (pb.BoolReply, error)

	DescribeCollection(ctx context.Context, collectionName pb.CollectionName) (pb.Mapping, error)

	CountCollection(ctx context.Context, collectionName pb.CollectionName) (pb.CollectionRowCount, error)

	ShowCollections(ctx context.Context) (pb.CollectionNameList, error)

	ShowCollectionInfo(ctx context.Context, collectionName pb.CollectionName) (pb.CollectionInfo, error)

	DropCollection(ctx context.Context, collectionName pb.CollectionName) (pb.Status, error)

	CreateIndex(ctx context.Context, indexParam pb.IndexParam) (pb.Status, error)

	DropIndex(ctx context.Context, indexParam pb.IndexParam) (pb.Status, error)

	CreatePartition(ctx context.Context, partitionParam pb.PartitionParam) (pb.Status, error)

	ShowPartitions(ctx context.Context, collectionName pb.CollectionName) (pb.PartitionList, error)

	HasPartition(ctx context.Context, param pb.PartitionParam) (pb.BoolReply, error)

	DropPartition(ctx context.Context, partitionParam pb.PartitionParam) (pb.Status, error)

	Insert(ctx context.Context, insertParam pb.InsertParam) (pb.EntityIds, error)

	GetEntityByID(ctx context.Context, identity pb.EntityIdentity) (pb.Entities, error)

	GetEntityIDs(ctx context.Context, param pb.GetEntityIDsParam) (pb.EntityIds, error)

	Search(ctx context.Context, searchParam pb.SearchParam) (*pb.QueryResult, error)

	Cmd(ctx context.Context, command pb.Command) (pb.StringReply, error)

	DeleteByID(ctx context.Context, param pb.DeleteByIDParam) (pb.Status, error)

	PreloadCollection(ctx context.Context, collectionName pb.CollectionName) (pb.Status, error)

	Flush(ctx context.Context, param pb.FlushParam) (pb.Status, error)

	Compact(ctx context.Context, compactParam pb.CompactParam) (pb.Status, error)
}

MilvusGrpcClient call grpc generated code interface

func NewMilvusGrpcClient

func NewMilvusGrpcClient(client pb.MilvusServiceClient) MilvusGrpcClient

NewMilvusGrpcClient is the constructor of MilvusGrpcClient

type Milvusclient

type Milvusclient struct {
	Instance MilvusGrpcClient
}

func (*Milvusclient) Compact

func (client *Milvusclient) Compact(ctx context.Context, compact CompactParam) (Status, error)

func (*Milvusclient) Connect

func (client *Milvusclient) Connect(ctx context.Context, connectParam ConnectParam) error

func (*Milvusclient) CountEntities added in v0.4.0

func (client *Milvusclient) CountEntities(ctx context.Context, collectionName string) (int64, Status, error)

func (*Milvusclient) CreateCollection

func (client *Milvusclient) CreateCollection(ctx context.Context, mapping Mapping) (Status, error)

func (*Milvusclient) CreateIndex

func (client *Milvusclient) CreateIndex(ctx context.Context, indexParam *IndexParam) (Status, error)

func (*Milvusclient) CreatePartition

func (client *Milvusclient) CreatePartition(ctx context.Context, partitionParam PartitionParam) (Status, error)

func (*Milvusclient) DeleteEntityByID added in v0.4.0

func (client *Milvusclient) DeleteEntityByID(ctx context.Context, collectionName string, id_array []int64) (Status, error)

func (*Milvusclient) Disconnect

func (client *Milvusclient) Disconnect(_ context.Context) error

func (*Milvusclient) DropCollection

func (client *Milvusclient) DropCollection(ctx context.Context, collectionName string) (Status, error)

func (*Milvusclient) DropIndex

func (client *Milvusclient) DropIndex(ctx context.Context, collectionName string, fieldName string) (Status, error)

func (*Milvusclient) DropPartition

func (client *Milvusclient) DropPartition(ctx context.Context, partitionParam PartitionParam) (Status, error)

func (*Milvusclient) Flush

func (client *Milvusclient) Flush(ctx context.Context, collectionNameArray []string) (Status, error)

func (*Milvusclient) GetClientVersion

func (client *Milvusclient) GetClientVersion(ctx context.Context) string

func (*Milvusclient) GetCollectionInfo added in v0.4.0

func (client *Milvusclient) GetCollectionInfo(ctx context.Context, collectionName string) (Mapping, Status, error)

func (*Milvusclient) GetCollectionStats added in v0.4.0

func (client *Milvusclient) GetCollectionStats(ctx context.Context, collectionName string) (string, Status, error)

func (*Milvusclient) GetConfig

func (client *Milvusclient) GetConfig(ctx context.Context, nodeName string) (string, Status, error)

func (*Milvusclient) GetEntityByID

func (client *Milvusclient) GetEntityByID(ctx context.Context, collectionName string, fields []string, entity_id []int64) ([]Entity, Status, error)

func (*Milvusclient) HasCollection

func (client *Milvusclient) HasCollection(ctx context.Context, collectionName string) (bool, Status, error)

func (*Milvusclient) HasPartition added in v0.5.0

func (client *Milvusclient) HasPartition(ctx context.Context, param PartitionParam) (bool, Status, error)

func (*Milvusclient) Insert

func (client *Milvusclient) Insert(ctx context.Context, insertParam InsertParam) ([]int64, Status, error)

func (*Milvusclient) IsConnected

func (client *Milvusclient) IsConnected(_ context.Context) bool

func (*Milvusclient) ListCollections added in v0.4.0

func (client *Milvusclient) ListCollections(ctx context.Context) ([]string, Status, error)

func (*Milvusclient) ListIDInSegment added in v0.4.0

func (client *Milvusclient) ListIDInSegment(ctx context.Context, listIDInSegmentParam ListIDInSegmentParam) ([]int64, Status, error)

func (*Milvusclient) ListPartitions added in v0.4.0

func (client *Milvusclient) ListPartitions(ctx context.Context, collectionName string) ([]PartitionParam, Status, error)

func (*Milvusclient) LoadCollection added in v0.4.0

func (client *Milvusclient) LoadCollection(ctx context.Context, collectionName string) (Status, error)

func (*Milvusclient) Search

func (client *Milvusclient) Search(ctx context.Context, searchParam SearchParam) (TopkQueryResult, Status, error)

func (*Milvusclient) ServerStatus

func (client *Milvusclient) ServerStatus(ctx context.Context) (string, Status, error)

func (*Milvusclient) ServerVersion

func (client *Milvusclient) ServerVersion(ctx context.Context) (string, Status, error)

func (*Milvusclient) SetConfig

func (client *Milvusclient) SetConfig(ctx context.Context, nodeName string, value string) (Status, error)

type Params added in v0.5.0

type Params struct {
	// contains filtered or unexported fields
}

func NewParams added in v0.5.0

func NewParams(params string) *Params

func (*Params) Get added in v0.5.0

func (p *Params) Get(key string) gjson.Result

func (*Params) Set added in v0.5.0

func (p *Params) Set(key string, value interface{}) *Params

func (*Params) String added in v0.5.0

func (p *Params) String() string

type PartitionParam

type PartitionParam struct {
	// CollectionName partition collection name
	CollectionName string
	// PartitionTag partition tag
	PartitionTag string
}

PartitionParam partition parameters

type PartitionStat

type PartitionStat struct {
	// Tag partition tag
	Tag string
	// RowCount row count of partition
	RowCount int64
	// SegmentsStat array of partition's SegmentStat
	SegmentsStat []SegmentStat
}

PartitionStat

type QueryResult

type QueryResult struct {
	// Ids id array
	Ids []int64
	// Distances distance array
	Distances []float32
	// Entities
	Entities []Entity
}

QueryResult Query result

type Range

type Range struct {
	// StartValue Range start
	StartValue string
	// EndValue Range stop
	EndValue string
}

Range range information, for DATE range, the format is like: 'year-month-day'

type SearchParam

type SearchParam struct {
	// CollectionName collection name for search
	CollectionName string
	// QueryEntities query entities raw array
	Dsl map[string]interface{}
	// PartitionTag partition tag array
	PartitionTag []string
}

SearchParam search parameters

type SegmentStat

type SegmentStat struct {
	// SegmentName segment name
	SegmentName string
	// RowCount segment row count
	RowCount int64
	// IndexName index name
	IndexName string
	//DataSize data size
	DataSize int64
}

SegmentStat segment statistics

type Status

type Status interface {
	Ok() bool
	GetStatus() status
	GetMessage() string
}

Status for SDK interface return

func NewStatus

func NewStatus(_status status) Status

NewStatus constructor of Status

func NewStatus1

func NewStatus1(errorCode ErrorCode, state string) Status

NewStatus1 constructor of Status

type TopkQueryResult

type TopkQueryResult struct {
	// QueryResultList query result list
	QueryResultList []QueryResult
}

TopkQueryResult Topk query result

type VectorRecord added in v0.5.0

type VectorRecord struct {
	VectorRecord []VectorRowRecord
}

VectorRecord

type VectorRowRecord added in v0.5.0

type VectorRowRecord struct {
	FloatData  []float32
	BinaryData []byte
}

VectorRowRecord

Directories

Path Synopsis
grpc
gen

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL