Documentation ¶
Overview ¶
Package dodod implements an embeddable full text search engine based on bleve, badger and bdodb
Index ¶
- Variables
- func ExtractFields(document interface{}) map[string]string
- func GetId(document interface{}) string
- func GetType(document interface{}) string
- func IsErrorType(value interface{}) bool
- type BleveIndexOpener
- type Database
- func (db *Database) ChangePassword(newPassword string) error
- func (db *Database) Close() error
- func (db *Database) Create(data []interface{}) error
- func (db *Database) CreateDocument(data []interface{}) error
- func (db *Database) CreateIndex(data []interface{}) error
- func (db *Database) DecodeDocument(data []byte) (interface{}, error)
- func (db *Database) DecodeDocumentUsingInterface(data []byte, document interface{}) error
- func (db *Database) Delete(data []interface{}) error
- func (db *Database) DeleteDocument(data []interface{}) error
- func (db *Database) DeleteIndex(data []interface{}) error
- func (db *Database) EncodeDocument(document interface{}) ([]byte, error)
- func (db *Database) GetDocument(data []interface{}) (uint64, error)
- func (db *Database) GetDocumentWithError(data []string) (uint64, []interface{}, error)
- func (db *Database) GetInternalDatabase() *badger.DB
- func (db *Database) GetInternalIndex() bleve.Index
- func (db *Database) GetInternalIndexMapping() *mapping.IndexMappingImpl
- func (db *Database) GetRegisteredDocument() map[string]interface{}
- func (db *Database) GetRegisteredFields() []string
- func (db *Database) IsDatabaseReady() bool
- func (db *Database) IsDocumentExists(id string) bool
- func (db *Database) IsIndexExists(id string) bool
- func (db *Database) Open() error
- func (db *Database) Read(data []string) (uint64, []interface{}, error)
- func (db *Database) RegisterDocument(d interface{}) error
- func (db *Database) Search(input map[string]interface{}, outputType string) (interface{}, error)
- func (db *Database) SetDbPassword(dbPassword string)
- func (db *Database) SetDbPath(dbPath string)
- func (db *Database) SetEncoderCredentialsRW(encoderCredentialsRW pasap.EncoderCredentialsRW)
- func (db *Database) SetIndexOpener(opener IndexOpener)
- func (db *Database) SetIndexStoreName(indexStoreName string)
- func (db *Database) SetPasswordHasher(passwordHasher pasap.PasswordHasher)
- func (db *Database) SetReadOnly(b bool)
- func (db *Database) SetVerifierCredentialsRW(verifierCredentialsRW pasap.VerifierCredentialsRW)
- func (db *Database) Setup(passwordHasher pasap.PasswordHasher, ...)
- func (db *Database) SetupDefaults()
- func (db *Database) Update(data []interface{}) error
- func (db *Database) UpdateDocument(data []interface{}) error
- func (db *Database) UpdateIndex(data []interface{}) error
- type Document
- type DocumentRegistry
- type Dodod
- type IndexOpener
- type Logger
- type Mutation
- type Query
- type Search
Constants ¶
This section is empty.
Variables ¶
var ErrDatabaseIsNotOpen = errors.New("dodod: database is not open")
var ErrDatabasePasswordChangeFailed = errors.New("dodod: database password change failed")
var ErrNilPointer = errors.New("dodod: nil pointer")
var ErrDatabaseTransactionFailed = errors.New("dodod: database transaction failed")
var ErrDocumentTypeAlreadyRegistered = errors.New("dodod: document type already registered")
var ErrDocumentTypeIsNotRegistered = errors.New("dodod: document type is not registered")
var ErrEmptyPassword = errors.New("dodod: empty password")
var ErrEmptyPath = errors.New("dodod: empty path")
var ErrFailedToCopy = errors.New("dodod: failed to copy file")
var ErrFieldTypeMismatch = errors.New("dodod: field type mismatch")
ErrFieldTypeMismatch will occur if the field already registered as different type
var ErrIdCanNotBeEmpty = errors.New("dodod: id can not be empty")
var ErrIndexStorePasswordChangeFailed = errors.New("dodod: index store password change failed")
var ErrIndexStoreTransactionFailed = errors.New("dodod: index store transaction failed")
var ErrInvalidConfigFile = errors.New("dodod: invalid config file")
var ErrFailedToOpenDatabase = errors.New("dodod: failed to open database") var ErrFailedToCloseDatabase = errors.New("dodod: failed to close database")
var ErrInvalidData = errors.New("dodod: invalid data")
var ErrInvalidDocument = errors.New("dodod: invalid document")
var ErrJSONParseFailed = errors.New("dodod: failed to parse json data")
var ErrNonBooleanValueForBooleanField = errors.New(`dodod: non-boolean value for boolean field`)
var ErrUnknownBaseType = errors.New(`dodod: unknown base type`)
var ErrWrongPassword = errors.New("dodod: wrong password")
Functions ¶
func ExtractFields ¶
func IsErrorType ¶
func IsErrorType(value interface{}) bool
IsErrorType checks if the provided value is error or not
Types ¶
type BleveIndexOpener ¶
type BleveIndexOpener struct {
EngineName string
}
func (*BleveIndexOpener) BleveIndex ¶
func (b *BleveIndexOpener) BleveIndex(dbPath string, indexMapping *mapping.IndexMappingImpl, indexName string, config map[string]interface{}) (bleve.Index, error)
func (*BleveIndexOpener) SetEngineName ¶
func (b *BleveIndexOpener) SetEngineName(name string)
type Database ¶
type Database struct {
// contains filtered or unexported fields
}
func (*Database) ChangePassword ¶
func (*Database) CreateDocument ¶
func (*Database) CreateIndex ¶
func (*Database) DecodeDocument ¶
func (*Database) DecodeDocumentUsingInterface ¶
func (*Database) DeleteDocument ¶
func (*Database) DeleteIndex ¶
func (*Database) EncodeDocument ¶
func (*Database) GetDocument ¶
func (*Database) GetDocumentWithError ¶
func (*Database) GetInternalDatabase ¶
func (db *Database) GetInternalDatabase() *badger.DB
func (*Database) GetInternalIndex ¶
func (*Database) GetInternalIndexMapping ¶
func (db *Database) GetInternalIndexMapping() *mapping.IndexMappingImpl
func (*Database) GetRegisteredDocument ¶
func (*Database) GetRegisteredFields ¶
func (*Database) IsDatabaseReady ¶
func (*Database) IsDocumentExists ¶
func (*Database) IsIndexExists ¶
func (*Database) RegisterDocument ¶
func (*Database) SetDbPassword ¶
func (*Database) SetEncoderCredentialsRW ¶
func (db *Database) SetEncoderCredentialsRW(encoderCredentialsRW pasap.EncoderCredentialsRW)
func (*Database) SetIndexOpener ¶
func (db *Database) SetIndexOpener(opener IndexOpener)
func (*Database) SetIndexStoreName ¶
func (*Database) SetPasswordHasher ¶
func (db *Database) SetPasswordHasher(passwordHasher pasap.PasswordHasher)
func (*Database) SetReadOnly ¶
func (*Database) SetVerifierCredentialsRW ¶
func (db *Database) SetVerifierCredentialsRW(verifierCredentialsRW pasap.VerifierCredentialsRW)
func (*Database) Setup ¶
func (db *Database) Setup(passwordHasher pasap.PasswordHasher, encoderCredentialsRW pasap.EncoderCredentialsRW, verifierCredentialsRW pasap.VerifierCredentialsRW, indexOpener IndexOpener)
func (*Database) SetupDefaults ¶
func (db *Database) SetupDefaults()
func (*Database) UpdateDocument ¶
func (*Database) UpdateIndex ¶
type Document ¶
type Document interface { mapping.Classifier GetId() string }
type DocumentRegistry ¶
type IndexOpener ¶
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
type Mutation ¶
type Mutation interface { // Create data into the database and index store Create(data []interface{}) error // Update data inside the database and index store Update(data []interface{}) error // Delete data from the database and index store Delete(data []interface{}) error // CreateIndex into the index store CreateIndex(data []interface{}) error // UpdateIndex inside the index store UpdateIndex(data []interface{}) error // DeleteIndex from the index store DeleteIndex(data []interface{}) error // CreateDocument into the database CreateDocument(data []interface{}) error // UpdateDocument inside the database UpdateDocument(data []interface{}) error // DeleteDocument from the database DeleteDocument(data []interface{}) error }
Mutation interface defines all mutation related methods
type Query ¶
type Query interface { // Read data using the provided id Read(data []string) (uint64, []interface{}, error) // GetDocument will fill up the data provided by the interface GetDocument(data []interface{}) (uint64, error) // GetDocumentWithError will get documents from the database // using ids provided in the data string slice GetDocumentWithError(data []string) (uint64, []interface{}, error) }
Query interface defines all query related methods
type Search ¶
type Search interface { // Search using the input map and output result (based on outputType) and error Search(input map[string]interface{}, outputType string) (output interface{}, err error) }
Search interface defines a basic method to search
Implementation must strictly follow input and output guide