Documentation
¶
Index ¶
- Constants
- Variables
- func DecodeUvarintAscending(b []byte) ([]byte, uint64, error)
- func EncodeUvarintAscending(b []byte, v uint64) []byte
- func IncrementBytes(in []byte) []byte
- func LiteralPrefix(s *syntax.Regexp) string
- func ParseRegexp(pattern string) (a *regexp.Regexp, prefixBeg, prefixEnd []byte, err error)
- type DictionaryIterator
- type DocVisitState
- type DocumentFieldTermVisitable
- type DocumentFieldValueVisitor
- type EmptyDictionary
- func (e *EmptyDictionary) AutomatonIterator(a vellum.Automaton, startKeyInclusive, endKeyExclusive []byte) DictionaryIterator
- func (e *EmptyDictionary) Contains(key []byte) (bool, error)
- func (e *EmptyDictionary) Iterator() DictionaryIterator
- func (e *EmptyDictionary) OnlyIterator(onlyTerms [][]byte, includeCount bool) DictionaryIterator
- func (e *EmptyDictionary) PostingsList(term []byte, except *roaring.Bitmap, prealloc PostingsList) (PostingsList, error)
- func (e *EmptyDictionary) PrefixIterator(prefix string) DictionaryIterator
- func (e *EmptyDictionary) RangeIterator(start, end string) DictionaryIterator
- type EmptyDictionaryIterator
- type EmptyPostingsIterator
- type EmptyPostingsList
- type EmptySegment
- func (e *EmptySegment) AddRef()
- func (e *EmptySegment) Close() error
- func (e *EmptySegment) Count() uint64
- func (e *EmptySegment) DecRef() error
- func (e *EmptySegment) Dictionary(field string) (TermDictionary, error)
- func (e *EmptySegment) DocID(num uint64) ([]byte, error)
- func (e *EmptySegment) DocNumbers([]string) (*roaring.Bitmap, error)
- func (e *EmptySegment) Fields() []string
- func (e *EmptySegment) Size() uint64
- func (e *EmptySegment) VisitDocument(num uint64, visitor DocumentFieldValueVisitor) error
- type Location
- type MemUvarintReader
- type OptimizablePostingsIterator
- type PersistedSegment
- type Plugin
- type Posting
- type PostingsIterator
- type PostingsList
- type Segment
- type StatsReporter
- type TermDictionary
- type UnadornedPosting
- type UnadornedPostingsIterator1Hit
- type UnadornedPostingsIteratorBitmap
- func (i *UnadornedPostingsIteratorBitmap) ActualBitmap() *roaring.Bitmap
- func (i *UnadornedPostingsIteratorBitmap) Advance(docNum uint64) (Posting, error)
- func (i *UnadornedPostingsIteratorBitmap) DocNum1Hit() (uint64, bool)
- func (i *UnadornedPostingsIteratorBitmap) Next() (Posting, error)
- func (i *UnadornedPostingsIteratorBitmap) ReplaceActual(actual *roaring.Bitmap)
- func (i *UnadornedPostingsIteratorBitmap) Size() int
- type UnpersistedSegment
Constants ¶
const ( MaxVarintSize = 9 // IntMin is chosen such that the range of int tags does not overlap the // ascii character set that is frequently used in testing. IntMin = 0x80 // 128 // IntMax is the maximum int tag value. IntMax = 0xfd // 253 )
Variables ¶
var AnEmptyPostingsIterator = &EmptyPostingsIterator{}
var ErrClosed = fmt.Errorf("index closed")
var ErrMemUvarintReaderOverflow = errors.New("MemUvarintReader overflow")
Functions ¶
func DecodeUvarintAscending ¶
DecodeUvarintAscending decodes a varint encoded uint64 from the input buffer. The remainder of the input buffer and the decoded uint64 are returned.
func EncodeUvarintAscending ¶
EncodeUvarintAscending encodes the uint64 value using a variable length (length-prefixed) representation. The length is encoded as a single byte indicating the number of encoded bytes (-8) to follow. See EncodeVarintAscending for rationale. The encoded bytes are appended to the supplied buffer and the final buffer is returned.
func IncrementBytes ¶ added in v0.8.0
func LiteralPrefix ¶ added in v0.8.0
Returns the literal prefix given the parse tree for a regexp
Types ¶
type DictionaryIterator ¶
type DocVisitState ¶ added in v0.8.0
type DocVisitState interface {
}
type DocumentFieldTermVisitable ¶
type DocumentFieldTermVisitable interface {
VisitDocumentFieldTerms(localDocNum uint64, fields []string,
visitor index.DocumentFieldTermVisitor, optional DocVisitState) (DocVisitState, error)
// VisitableDocValueFields implementation should return
// the list of fields which are document value persisted and
// therefore visitable by the above VisitDocumentFieldTerms method.
VisitableDocValueFields() ([]string, error)
}
DocumentFieldTermVisitable is implemented by various scorch segment implementations with persistence for the un inverting of the postings or other indexed values.
type DocumentFieldValueVisitor ¶
DocumentFieldValueVisitor defines a callback to be visited for each stored field value. The return value determines if the visitor should keep going. Returning true continues visiting, false stops.
type EmptyDictionary ¶
type EmptyDictionary struct{}
func (*EmptyDictionary) AutomatonIterator ¶ added in v0.8.0
func (e *EmptyDictionary) AutomatonIterator(a vellum.Automaton, startKeyInclusive, endKeyExclusive []byte) DictionaryIterator
func (*EmptyDictionary) Contains ¶ added in v0.8.0
func (e *EmptyDictionary) Contains(key []byte) (bool, error)
func (*EmptyDictionary) Iterator ¶
func (e *EmptyDictionary) Iterator() DictionaryIterator
func (*EmptyDictionary) OnlyIterator ¶ added in v0.8.0
func (e *EmptyDictionary) OnlyIterator(onlyTerms [][]byte, includeCount bool) DictionaryIterator
func (*EmptyDictionary) PostingsList ¶
func (e *EmptyDictionary) PostingsList(term []byte, except *roaring.Bitmap, prealloc PostingsList) (PostingsList, error)
func (*EmptyDictionary) PrefixIterator ¶
func (e *EmptyDictionary) PrefixIterator(prefix string) DictionaryIterator
func (*EmptyDictionary) RangeIterator ¶
func (e *EmptyDictionary) RangeIterator(start, end string) DictionaryIterator
type EmptyDictionaryIterator ¶
type EmptyDictionaryIterator struct{}
type EmptyPostingsIterator ¶
type EmptyPostingsIterator struct{}
func (*EmptyPostingsIterator) Advance ¶ added in v0.8.0
func (e *EmptyPostingsIterator) Advance(uint64) (Posting, error)
func (*EmptyPostingsIterator) Next ¶
func (e *EmptyPostingsIterator) Next() (Posting, error)
func (*EmptyPostingsIterator) Size ¶ added in v0.8.0
func (e *EmptyPostingsIterator) Size() int
type EmptyPostingsList ¶
type EmptyPostingsList struct{}
func (*EmptyPostingsList) Count ¶
func (e *EmptyPostingsList) Count() uint64
func (*EmptyPostingsList) Iterator ¶
func (e *EmptyPostingsList) Iterator(includeFreq, includeNorm, includeLocations bool, prealloc PostingsIterator) PostingsIterator
func (*EmptyPostingsList) Size ¶ added in v0.8.0
func (e *EmptyPostingsList) Size() int
type EmptySegment ¶
type EmptySegment struct{}
func (*EmptySegment) AddRef ¶
func (e *EmptySegment) AddRef()
func (*EmptySegment) Close ¶
func (e *EmptySegment) Close() error
func (*EmptySegment) Count ¶
func (e *EmptySegment) Count() uint64
func (*EmptySegment) DecRef ¶
func (e *EmptySegment) DecRef() error
func (*EmptySegment) Dictionary ¶
func (e *EmptySegment) Dictionary(field string) (TermDictionary, error)
func (*EmptySegment) DocID ¶ added in v0.8.0
func (e *EmptySegment) DocID(num uint64) ([]byte, error)
func (*EmptySegment) DocNumbers ¶
func (e *EmptySegment) DocNumbers([]string) (*roaring.Bitmap, error)
func (*EmptySegment) Fields ¶
func (e *EmptySegment) Fields() []string
func (*EmptySegment) Size ¶ added in v0.8.0
func (e *EmptySegment) Size() uint64
func (*EmptySegment) VisitDocument ¶
func (e *EmptySegment) VisitDocument(num uint64, visitor DocumentFieldValueVisitor) error
type MemUvarintReader ¶ added in v0.8.0
func NewMemUvarintReader ¶ added in v0.8.0
func NewMemUvarintReader(s []byte) *MemUvarintReader
func (*MemUvarintReader) Len ¶ added in v0.8.0
func (r *MemUvarintReader) Len() int
Len returns the number of unread bytes.
func (*MemUvarintReader) ReadUvarint ¶ added in v0.8.0
func (r *MemUvarintReader) ReadUvarint() (uint64, error)
ReadUvarint reads an encoded uint64. The original code this was based on is at encoding/binary/ReadUvarint().
func (*MemUvarintReader) Reset ¶ added in v0.8.0
func (r *MemUvarintReader) Reset(s []byte)
func (*MemUvarintReader) SkipBytes ¶ added in v0.8.0
func (r *MemUvarintReader) SkipBytes(count int)
SkipBytes skips a count number of bytes.
func (*MemUvarintReader) SkipUvarint ¶ added in v0.8.0
func (r *MemUvarintReader) SkipUvarint()
SkipUvarint skips ahead one encoded uint64.
type OptimizablePostingsIterator ¶ added in v1.0.2
type PersistedSegment ¶ added in v1.0.2
type Plugin ¶ added in v1.0.2
type Plugin interface {
// Type is the name for this segment plugin
Type() string
// Version is a numeric value identifying a specific version of this type.
// When incompatible changes are made to a particular type of plugin, the
// version must be incremented.
Version() uint32
// New takes a set of AnalysisResults and turns them into a new Segment
New(results []*index.AnalysisResult) (Segment, uint64, error)
// Open attempts to open the file at the specified path and
// return the corresponding Segment
Open(path string) (Segment, error)
// Merge takes a set of Segments, and creates a new segment on disk at
// the specified path.
// Drops is a set of bitmaps (one for each segment) indicating which
// documents can be dropped from the segments during the merge.
// If the closeCh channel is closed, Merge will cease doing work at
// the next opportunity, and return an error (closed).
// StatsReporter can optionally be provided, in which case progress
// made during the merge is reported while operation continues.
// Returns:
// A slice of new document numbers (one for each input segment),
// this allows the caller to know a particular document's new
// document number in the newly merged segment.
// The number of bytes written to the new segment file.
// An error, if any occurred.
Merge(segments []Segment, drops []*roaring.Bitmap, path string,
closeCh chan struct{}, s StatsReporter) (
[][]uint64, uint64, error)
}
Plugin represents the essential functions required by a package to plug in it's segment implementation
type PostingsIterator ¶
type PostingsIterator interface {
// The caller is responsible for copying whatever it needs from
// the returned Posting instance before calling Next(), as some
// implementations may return a shared instance to reduce memory
// allocations.
Next() (Posting, error)
// Advance will return the posting with the specified doc number
// or if there is no such posting, the next posting.
// Callers MUST NOT attempt to pass a docNum that is less than or
// equal to the currently visited posting doc Num.
Advance(docNum uint64) (Posting, error)
Size() int
}
func NewUnadornedPostingsIteratorFrom1Hit ¶ added in v1.0.2
func NewUnadornedPostingsIteratorFrom1Hit(docNum1Hit uint64) PostingsIterator
func NewUnadornedPostingsIteratorFromBitmap ¶ added in v1.0.2
func NewUnadornedPostingsIteratorFromBitmap(bm *roaring.Bitmap) PostingsIterator
type PostingsList ¶
type PostingsList interface {
Iterator(includeFreq, includeNorm, includeLocations bool, prealloc PostingsIterator) PostingsIterator
Size() int
Count() uint64
}
type Segment ¶
type Segment interface {
Dictionary(field string) (TermDictionary, error)
VisitDocument(num uint64, visitor DocumentFieldValueVisitor) error
DocID(num uint64) ([]byte, error)
Count() uint64
DocNumbers([]string) (*roaring.Bitmap, error)
Fields() []string
Close() error
Size() int
AddRef()
DecRef() error
}
type StatsReporter ¶ added in v0.8.0
type StatsReporter interface {
ReportBytesWritten(bytesWritten uint64)
}
type TermDictionary ¶
type TermDictionary interface {
PostingsList(term []byte, except *roaring.Bitmap, prealloc PostingsList) (PostingsList, error)
Iterator() DictionaryIterator
PrefixIterator(prefix string) DictionaryIterator
RangeIterator(start, end string) DictionaryIterator
AutomatonIterator(a vellum.Automaton,
startKeyInclusive, endKeyExclusive []byte) DictionaryIterator
OnlyIterator(onlyTerms [][]byte, includeCount bool) DictionaryIterator
Contains(key []byte) (bool, error)
}
type UnadornedPosting ¶ added in v1.0.2
type UnadornedPosting uint64
func (UnadornedPosting) Frequency ¶ added in v1.0.2
func (p UnadornedPosting) Frequency() uint64
func (UnadornedPosting) Locations ¶ added in v1.0.2
func (p UnadornedPosting) Locations() []Location
func (UnadornedPosting) Norm ¶ added in v1.0.2
func (p UnadornedPosting) Norm() float64
func (UnadornedPosting) Number ¶ added in v1.0.2
func (p UnadornedPosting) Number() uint64
func (UnadornedPosting) Size ¶ added in v1.0.2
func (p UnadornedPosting) Size() int
type UnadornedPostingsIterator1Hit ¶ added in v1.0.2
type UnadornedPostingsIterator1Hit struct {
// contains filtered or unexported fields
}
func (*UnadornedPostingsIterator1Hit) Advance ¶ added in v1.0.2
func (i *UnadornedPostingsIterator1Hit) Advance(docNum uint64) (Posting, error)
func (*UnadornedPostingsIterator1Hit) Next ¶ added in v1.0.2
func (i *UnadornedPostingsIterator1Hit) Next() (Posting, error)
func (*UnadornedPostingsIterator1Hit) Size ¶ added in v1.0.2
func (i *UnadornedPostingsIterator1Hit) Size() int
type UnadornedPostingsIteratorBitmap ¶ added in v1.0.2
type UnadornedPostingsIteratorBitmap struct {
// contains filtered or unexported fields
}
func (*UnadornedPostingsIteratorBitmap) ActualBitmap ¶ added in v1.0.10
func (i *UnadornedPostingsIteratorBitmap) ActualBitmap() *roaring.Bitmap
func (*UnadornedPostingsIteratorBitmap) Advance ¶ added in v1.0.2
func (i *UnadornedPostingsIteratorBitmap) Advance(docNum uint64) (Posting, error)
func (*UnadornedPostingsIteratorBitmap) DocNum1Hit ¶ added in v1.0.10
func (i *UnadornedPostingsIteratorBitmap) DocNum1Hit() (uint64, bool)
func (*UnadornedPostingsIteratorBitmap) Next ¶ added in v1.0.2
func (i *UnadornedPostingsIteratorBitmap) Next() (Posting, error)
func (*UnadornedPostingsIteratorBitmap) ReplaceActual ¶ added in v1.0.10
func (i *UnadornedPostingsIteratorBitmap) ReplaceActual(actual *roaring.Bitmap)
func (*UnadornedPostingsIteratorBitmap) Size ¶ added in v1.0.2
func (i *UnadornedPostingsIteratorBitmap) Size() int