diff --git a/cmd/corpus/corpus.go b/cmd/corpus/corpus.go index 52be4bf6727f19cdb49685339413141f2844d80f..0542867d9f513596e1be30bb49a551912f35fea3 100644 --- a/cmd/corpus/corpus.go +++ b/cmd/corpus/corpus.go @@ -15,6 +15,7 @@ var ( dbPath = flag.String("db", "./db", "Path to the index") doSearch = flag.Bool("search", true, "Search for something (default)") doIndex = flag.Bool("index", false, "Index documents") + doDump = flag.Bool("dump", false, "Dump index database") limit = flag.Int("limit", 20, "Limit number of search results") noScores = flag.Bool("no-score", false, "Hide score in results") highlights = flag.Bool("highlights", false, "Show highlights from search results") @@ -124,6 +125,8 @@ func main() { if *doIndex { runIndex(index, flag.Args()) + } else if *doDump { + index.Dump() } else { runSearch(index, flag.Args()) } diff --git a/index.go b/index.go index 71bcde22b787327cbe2466214316efb8c857ff56..aa2ac84004ab9e397ba0409eef2ee9d13e457032 100644 --- a/index.go +++ b/index.go @@ -5,6 +5,7 @@ import ( "fmt" "github.com/blevesearch/bleve" + "github.com/blevesearch/bleve/index/upside_down" "github.com/rainycape/cld2" ) @@ -156,3 +157,15 @@ func (b *Index) Search(queryStr string, offset, limit int, highlights bool) (*bl func (b *Index) Close() { b.index.Close() } + +func (b *Index) Dump() { + for rowOrErr := range b.index.DumpAll() { + switch rowOrErr := rowOrErr.(type) { + case error: + fmt.Printf("error dumping: %v\n", rowOrErr) + case upside_down.UpsideDownCouchRow: + fmt.Printf("%v\n", rowOrErr) + fmt.Printf("Key: % -100x\nValue: % -100x\n\n", rowOrErr.Key(), rowOrErr.Value()) + } + } +}