bleve: Index | Files | Directories

package index

import ""


Package Files

analysis.go field_cache.go index.go


var ErrorUnknownStorageType = fmt.Errorf("unknown storage type")

func AnalysisWorker Uses

func AnalysisWorker(q AnalysisQueue)

type AnalysisQueue Uses

type AnalysisQueue struct {
    // contains filtered or unexported fields

func NewAnalysisQueue Uses

func NewAnalysisQueue(numWorkers int) *AnalysisQueue

func (*AnalysisQueue) Close Uses

func (q *AnalysisQueue) Close()

func (*AnalysisQueue) Queue Uses

func (q *AnalysisQueue) Queue(work *AnalysisWork)

type AnalysisResult Uses

type AnalysisResult struct {
    DocID string
    Rows  []IndexRow

    // scorch
    Document *document.Document
    Analyzed []analysis.TokenFrequencies
    Length   []int

type AnalysisWork Uses

type AnalysisWork struct {
    // contains filtered or unexported fields

func NewAnalysisWork Uses

func NewAnalysisWork(i Index, d *document.Document, rc chan *AnalysisResult) *AnalysisWork

type Batch Uses

type Batch struct {
    IndexOps    map[string]*document.Document
    InternalOps map[string][]byte

func NewBatch Uses

func NewBatch() *Batch

func (*Batch) Delete Uses

func (b *Batch) Delete(id string)

func (*Batch) DeleteInternal Uses

func (b *Batch) DeleteInternal(key []byte)

func (*Batch) Reset Uses

func (b *Batch) Reset()

func (*Batch) SetInternal Uses

func (b *Batch) SetInternal(key, val []byte)

func (*Batch) String Uses

func (b *Batch) String() string

func (*Batch) Update Uses

func (b *Batch) Update(doc *document.Document)

type DictEntry Uses

type DictEntry struct {
    Term  string
    Count uint64

type DocIDReader Uses

type DocIDReader interface {
    // Next returns the next document internal identifier in the natural
    // index order, nil when the end of the sequence is reached.
    Next() (IndexInternalID, error)

    // Advance resets the iteration to the first internal identifier greater than
    // or equal to ID. If ID is smaller than the start of the range, the iteration
    // will start there instead. If ID is greater than or equal to the end of
    // the range, Next() call will return io.EOF.
    Advance(ID IndexInternalID) (IndexInternalID, error)

    Size() int

    Close() error

DocIDReader is the interface exposing enumeration of documents identifiers. Close the reader to release associated resources.

type DocumentFieldTermVisitor Uses

type DocumentFieldTermVisitor func(field string, term []byte)

type FieldCache Uses

type FieldCache struct {
    // contains filtered or unexported fields

func NewFieldCache Uses

func NewFieldCache() *FieldCache

func (*FieldCache) AddExisting Uses

func (f *FieldCache) AddExisting(field string, index uint16)

func (*FieldCache) FieldIndexed Uses

func (f *FieldCache) FieldIndexed(index uint16) (field string)

func (*FieldCache) FieldNamed Uses

func (f *FieldCache) FieldNamed(field string, createIfMissing bool) (uint16, bool)

FieldNamed returns the index of the field, and whether or not it existed before this call. if createIfMissing is true, and new field index is assigned but the second return value will still be false

type FieldDict Uses

type FieldDict interface {
    Next() (*DictEntry, error)
    Close() error

type FieldTerms Uses

type FieldTerms map[string][]string

FieldTerms contains the terms used by a document, keyed by field

func (FieldTerms) FieldsNotYetCached Uses

func (f FieldTerms) FieldsNotYetCached(fields []string) []string

FieldsNotYetCached returns a list of fields not yet cached out of a larger list of fields

func (FieldTerms) Merge Uses

func (f FieldTerms) Merge(other FieldTerms)

Merge will combine two FieldTerms it assumes that the terms lists are complete (thus do not need to be merged) field terms from the other list always replace the ones in the receiver

type Index Uses

type Index interface {
    Open() error
    Close() error

    Update(doc *document.Document) error
    Delete(id string) error
    Batch(batch *Batch) error

    SetInternal(key, val []byte) error
    DeleteInternal(key []byte) error

    // Reader returns a low-level accessor on the index data. Close it to
    // release associated resources.
    Reader() (IndexReader, error)

    Stats() json.Marshaler
    StatsMap() map[string]interface{}

    Analyze(d *document.Document) *AnalysisResult

    Advanced() (store.KVStore, error)

type IndexInternalID Uses

type IndexInternalID []byte

IndexInternalID is an opaque document identifier interal to the index impl

func (IndexInternalID) Compare Uses

func (id IndexInternalID) Compare(other IndexInternalID) int

func (IndexInternalID) Equals Uses

func (id IndexInternalID) Equals(other IndexInternalID) bool

type IndexReader Uses

type IndexReader interface {
    TermFieldReader(term []byte, field string, includeFreq, includeNorm, includeTermVectors bool) (TermFieldReader, error)

    // DocIDReader returns an iterator over all doc ids
    // The caller must close returned instance to release associated resources.
    DocIDReaderAll() (DocIDReader, error)

    DocIDReaderOnly(ids []string) (DocIDReader, error)

    FieldDict(field string) (FieldDict, error)

    // FieldDictRange is currently defined to include the start and end terms
    FieldDictRange(field string, startTerm []byte, endTerm []byte) (FieldDict, error)
    FieldDictPrefix(field string, termPrefix []byte) (FieldDict, error)

    Document(id string) (*document.Document, error)
    DocumentVisitFieldTerms(id IndexInternalID, fields []string, visitor DocumentFieldTermVisitor) error

    Fields() ([]string, error)

    GetInternal(key []byte) ([]byte, error)

    DocCount() (uint64, error)

    ExternalID(id IndexInternalID) (string, error)
    InternalID(id string) (IndexInternalID, error)

    DumpAll() chan interface{}
    DumpDoc(id string) chan interface{}
    DumpFields() chan interface{}

    Close() error

type IndexRow Uses

type IndexRow interface {
    KeySize() int
    KeyTo([]byte) (int, error)
    Key() []byte

    ValueSize() int
    ValueTo([]byte) (int, error)
    Value() []byte

type TermFieldDoc Uses

type TermFieldDoc struct {
    Term    string
    ID      IndexInternalID
    Freq    uint64
    Norm    float64
    Vectors []*TermFieldVector

func (*TermFieldDoc) Reset Uses

func (tfd *TermFieldDoc) Reset() *TermFieldDoc

Reset allows an already allocated TermFieldDoc to be reused

func (*TermFieldDoc) Size Uses

func (tfd *TermFieldDoc) Size() int

type TermFieldReader Uses

type TermFieldReader interface {
    // Next returns the next document containing the term in this field, or nil
    // when it reaches the end of the enumeration.  The preAlloced TermFieldDoc
    // is optional, and when non-nil, will be used instead of allocating memory.
    Next(preAlloced *TermFieldDoc) (*TermFieldDoc, error)

    // Advance resets the enumeration at specified document or its immediate
    // follower.
    Advance(ID IndexInternalID, preAlloced *TermFieldDoc) (*TermFieldDoc, error)

    // Count returns the number of documents contains the term in this field.
    Count() uint64
    Close() error

    Size() int

TermFieldReader is the interface exposing the enumeration of documents containing a given term in a given field. Documents are returned in byte lexicographic order over their identifiers.

type TermFieldVector Uses

type TermFieldVector struct {
    Field          string
    ArrayPositions []uint64
    Pos            uint64
    Start          uint64
    End            uint64

func (*TermFieldVector) Size Uses

func (tfv *TermFieldVector) Size() int


scorch/mergeplanPackage mergeplan provides a segment merge planning approach that's inspired by Lucene's and descriptions like
store/boltdbPackage boltdb implements a store.KVStore on top of BoltDB.
store/gtreapPackage gtreap provides an in-memory implementation of the KVStore interfaces using the gtreap balanced-binary treap, copy-on-write data structure.
store/metricsPackage metrics provides a implementation that wraps another, real KVStore implementation, and uses go-metrics to track runtime performance metrics.
upsidedownPackage upsidedown is a generated protocol buffer package.

Package index imports 9 packages (graph) and is imported by 194 packages. Updated 2018-03-19. Refresh now. Tools for package owners.