Documentation
¶
Index ¶
- func CalculateAverage(avg []float64, p []float64, n float64) []float64
- func EncodeSearchConfig(p *SearchConfig) []byte
- func GetSearchKey(datum *Datum, config *SearchConfig) string
- func VectorDistance(arr1 []float64, arr2 []float64) float64
- func VectorMultiplication(arr1 []float64, arr2 []float64) float64
- type Collector
- type Data
- func (dt *Data) AddSource(dataSource DataSource)
- func (dt *Data) Close() error
- func (dt *Data) GetID() string
- func (dt *Data) GetStats() *Stats
- func (dt *Data) InitData() error
- func (dt *Data) Insert(datum *Datum, config *InsertConfig) error
- func (dt *Data) Process(force bool) error
- func (dt *Data) Run() error
- func (dt *Data) Search(datum *Datum, config *SearchConfig) *Collector
- func (dt *Data) StreamAll(datumStream chan<- *Datum) error
- func (dt *Data) StreamInsert(datumStream <-chan *InsertDatumWithConfig) error
- func (dt *Data) StreamSample(datumStream chan<- *Datum, fraction float64) error
- func (dt *Data) StreamSearch(datum *Datum, scoredDatumStream chan<- *ScoredDatum, ...) error
- func (dt *Data) SuperSearch(datum *Datum, scoredDatumStreamOutput chan<- *ScoredDatum, ...) error
- func (dt *Data) Sync(source DataSource, waitGroup *sync.WaitGroup) error
- func (dt *Data) SyncAll() error
- type DataSource
- type Dataset
- type Datum
- type DatumKey
- type DatumValue
- type InsertConfig
- type InsertDatumWithConfig
- type ScoredDatum
- type SearchConfig
- type Stats
- type StreamCollector
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CalculateAverage ¶
CalculateAverage calculates average of two arrays divided by n
func EncodeSearchConfig ¶
func EncodeSearchConfig(p *SearchConfig) []byte
func GetSearchKey ¶
func GetSearchKey(datum *Datum, config *SearchConfig) string
func VectorDistance ¶
VectorDistance calculates distance of two vector by euclidean distance
func VectorMultiplication ¶
VectorMultiplication calculates elementwise of multiplication of two vectors
Types ¶
type Collector ¶
type Collector struct { List []*ScoredDatum ScoreFunc func(arr1 []float64, arr2 []float64) float64 MaxScore float64 DatumKey *DatumKey N uint32 HigherIsBetter bool }
Collector collects results
func (*Collector) Insert ¶
func (c *Collector) Insert(scoredDatum *ScoredDatum) error
Insert add a new scored datum to collector
type Data ¶
type Data struct { Name string Avg []float64 N int64 MaxDistance float64 Hist []float64 Timestamp int64 DB *badger.DB DBPath string Dirty bool Sources *cache.Cache QueryCache *cache.Cache }
Data represents a dataset with similar struture
func NewTempData ¶
NewTempData return an inmemory badger instance
func (*Data) Insert ¶
func (dt *Data) Insert(datum *Datum, config *InsertConfig) error
Insert inserts data to internal kv store
func (*Data) Search ¶
func (dt *Data) Search(datum *Datum, config *SearchConfig) *Collector
Search does a search based on distances of keys
func (*Data) StreamInsert ¶
func (dt *Data) StreamInsert(datumStream <-chan *InsertDatumWithConfig) error
StreamInsert inserts data in stream
func (*Data) StreamSample ¶
func (*Data) StreamSearch ¶
func (dt *Data) StreamSearch(datum *Datum, scoredDatumStream chan<- *ScoredDatum, queryWaitGroup *sync.WaitGroup, config *SearchConfig) error
StreamSearch does a search based on distances of keys
func (*Data) SuperSearch ¶
func (dt *Data) SuperSearch(datum *Datum, scoredDatumStreamOutput chan<- *ScoredDatum, config *SearchConfig) error
SuperSearch searches and merges other resources
type DataSource ¶
type DataSource interface { StreamSearch(datum *Datum, scoredDatumStream chan<- *ScoredDatum, queryWaitGroup *sync.WaitGroup, config *SearchConfig) error StreamInsert(datumStream <-chan *InsertDatumWithConfig) error Insert(datum *Datum, config *InsertConfig) error GetStats() *Stats GetID() string }
type Dataset ¶
type Dataset struct { DataList *cache.Cache Path string }
func NewDataset ¶
func (*Dataset) CreateIfNotExists ¶
func (*Dataset) GetOrCreateIfNotExists ¶
type Datum ¶
type Datum struct { Key *DatumKey Value *DatumValue }
Datum is a general feature holder
type DatumKey ¶
type DatumKey struct { Feature []float64 Dim1 uint32 Dim2 uint32 Size1 uint32 Size2 uint32 GroupLabel []byte }
DatumKey is a key for Datum
func ToDatumKey ¶
type DatumValue ¶
DatumValue is value of a Datum
func ToDatumValue ¶
func ToDatumValue(byteArray []byte) (*DatumValue, error)
type InsertConfig ¶
type InsertDatumWithConfig ¶
type InsertDatumWithConfig struct { Config *InsertConfig Datum *Datum }
type ScoredDatum ¶
ScoredDatum helps to keep Data ordered
type SearchConfig ¶
type SearchConfig struct { ScoreFuncName string `json:"scoreFuncName"` ScoreFunc func(arr1 []float64, arr2 []float64) float64 `json:"-"` HigherIsBetter bool `json:"higherIsBetter"` Limit uint32 `json:"limit"` Duration time.Duration `json:"-"` }
func DefaultSearchConfig ¶
func DefaultSearchConfig() *SearchConfig
type StreamCollector ¶
type StreamCollector struct {
DatumStream chan<- *Datum
}
StreamCollector collects results