/blever

Badger support for blevesearch

Primary LanguageGo

Blever

Usage

package main

import (
	"fmt"
	"log"

	"github.com/blevesearch/bleve"
	"github.com/squiidz/blever"
)

type User struct {
	ID       uint64
	Username string
	Password string
}

func main() {
	u := User{
		ID:       1,
		Username: "john Doe",
		Password: "a1b2c3",
	}
	// create/open bleveIndex
	index, err := blever.BleveIndex("badger/userIndex", bleve.NewIndexMapping())
	if err != nil {
		log.Fatal(err)
	}
	// index some data
	err = index.Index(u.Username, u)
	if err != nil {
		log.Fatal(err)
	}
	// search for some text
	query := bleve.NewMatchQuery("a1b2c3")
	search := bleve.NewSearchRequest(query)
	searchResult, err := index.Search(search)
	if err != nil {
		log.Fatal(err)
	}
	for _, d := range searchResult.Hits {
		doc, _ := index.Document(d.ID)
		for _, f := range doc.Fields {
			fmt.Println(f.Name(), ":", string(f.Value()))
		}
	}
}