bdodb

package module
v0.1.2 Latest Latest
Warning

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

Go to latest
Published: Mar 17, 2020 License: MIT Imports: 11 Imported by: 1

README

bdodb

Build Status Go Report Card Coverage Status


Package bdodb is a badger based backend database for bleve with all the customization options provided by the badger

Usage

➜ go get github.com/mkawserm/bdodb .


package main

import (
    "fmt"
    "github.com/blevesearch/bleve"
    "github.com/blevesearch/bleve/index/upsidedown"
    "github.com/mkawserm/bdodb"
)

func main() { 
    // create or open bleveIndex
    index, err := bdodb.BleveIndex("/tmp/bdodb", bleve.NewIndexMapping(), upsidedown.Name, nil)
    
    message := struct{
        Id   string
        Body string
    }{
        Id:   "custom_id", 
        Body: "bleve indexing with badger using bdodb",
    }
    
    // index message data 
    err = index.Index(message.Id, message)
    if err !=nil {
        panic(err)
    }
    
    // search for some text 
    query := bleve.NewQueryStringQuery("bdodb")
    search := bleve.NewSearchRequest(query)
    if searchResults, err := index.Search(search); err == nil {
        fmt.Println(searchResults)
    } else {
        fmt.Println(err)
    }
}

Documentation

Overview

Package bdodb is a badger based backend database for bleve with all the customization options provided by the badger.

By Md Kawser Munshi

Index

Examples

Constants

View Source
const (
	// EngineName is the name of this engine in blevesearch
	EngineName = "bdodb"
)

Variables

This section is empty.

Functions

func BleveIndex

func BleveIndex(path string, mapping mapping.IndexMapping, indexType string, config map[string]interface{}) (bleve.Index, error)

BleveIndex a helper function that open (creates if not exists a new) bleve index

Example
package main

import (
	"fmt"
	"github.com/blevesearch/bleve"
	"github.com/blevesearch/bleve/index/upsidedown"
	"github.com/mkawserm/bdodb"
)

func main() {
	// create or open bleveIndex
	index, err := bdodb.BleveIndex("/tmp/bdodb_example", bleve.NewIndexMapping(), upsidedown.Name, nil)

	if err != nil {
		panic(err)
	}

	message := struct {
		Id   string
		Body string
	}{
		Id:   "custom_id",
		Body: "bleve indexing with badger using bdodb",
	}

	// index message data
	if val, _ := index.Document(message.Id); val == nil {
		if err := index.Index(message.Id, message); err != nil {
			panic(err)
		}
	}

	// search for some text
	query := bleve.NewQueryStringQuery("bdodb")
	search := bleve.NewSearchRequest(query)
	if searchResults, err := index.Search(search); err == nil {
		fmt.Println(searchResults)
	} else {
		fmt.Println(err)
	}
}
Output:

func NewStore

func NewStore() registry.KVStoreConstructor

NewStore returns a registry.KVStoreConstructor

Types

type Config

type Config struct {
	EncryptionKey []byte        `json:"-"`
	Logger        badger.Logger `json:"-"`
}

Config manages Logger and EncryptionKey option for the badger backend

type Iterator

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

Iterator implements bleve store iterator

func (*Iterator) Close

func (i *Iterator) Close() error

Close closes the current iterator and commit its transaction

func (*Iterator) Current

func (i *Iterator) Current() ([]byte, []byte, bool)

Current returns the key & value of the current step

func (*Iterator) Key

func (i *Iterator) Key() []byte

Key return the key of the current step

func (*Iterator) Next

func (i *Iterator) Next()

Next advance the iterator to the next step

func (*Iterator) Seek

func (i *Iterator) Seek(key []byte)

Seek advance the iterator to the specified key

func (*Iterator) Valid

func (i *Iterator) Valid() bool

Valid whether the current iterator step is valid or not

func (*Iterator) Value

func (i *Iterator) Value() []byte

Value returns the value of the current step

type Logger

type Logger interface {
	Errorf(f string, v ...interface{})
	Warningf(f string, v ...interface{})
	Infof(f string, v ...interface{})
	Debugf(f string, v ...interface{})
}

Logger interface

var DefaultLogger Logger = &defaultLog{Logger: log.New(os.Stderr, "bdodb ", log.LstdFlags)}

DefaultLogger is the default logger for bdodb Set different logger to modify the logging behavior

type Reader

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

Reader implements bleve store Reader interface

func (*Reader) Close

func (reader *Reader) Close() error

Close closes the current reader and do some cleanup

func (*Reader) Get

func (reader *Reader) Get(k []byte) ([]byte, error)

Get fetch the value of the specified key from the store

func (*Reader) MultiGet

func (reader *Reader) MultiGet(keys [][]byte) ([][]byte, error)

MultiGet returns multiple values for the specified keys

func (*Reader) PrefixIterator

func (reader *Reader) PrefixIterator(k []byte) store.KVIterator

PrefixIterator initialize a new prefix iterator

func (*Reader) RangeIterator

func (reader *Reader) RangeIterator(start, end []byte) store.KVIterator

RangeIterator initialize a new range iterator

type Store

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

Store implements bleve store

func (*Store) Close

func (store *Store) Close() error

Close cleanup and close the current store

func (*Store) Reader

func (store *Store) Reader() (store.KVReader, error)

Reader initialize a new store.Reader

func (*Store) Writer

func (store *Store) Writer() (store.KVWriter, error)

Writer initialize a new store.Writer

type Writer

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

Writer implements bleve store Writer interface

func (*Writer) Close

func (writer *Writer) Close() error

Close closes the current writer

func (*Writer) ExecuteBatch

func (writer *Writer) ExecuteBatch(batch store.KVBatch) (err error)

ExecuteBatch implements bleve ExecuteBatch

func (*Writer) NewBatch

func (writer *Writer) NewBatch() store.KVBatch

NewBatch implements NewBatch

func (*Writer) NewBatchEx

func (writer *Writer) NewBatchEx(options store.KVBatchOptions) ([]byte, store.KVBatch, error)

NewBatchEx implements bleve NewBatchEx

Jump to

Keyboard shortcuts

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