コード例 #1
0
ファイル: export.go プロジェクト: blevesearch/blevex
// ExportBleve will dump all the index rows from
// the provided index and serialize them to the
// provided Writer
func ExportBleve(i index.Index, w io.Writer) error {
	kvpw := NewWriter(w)

	r, err := i.Reader()
	if err != nil {
		return fmt.Errorf("error getting reader: %v", err)
	}

	var dumpChan chan interface{}
	dumpChan = r.DumpAll()

	for dumpValue := range dumpChan {
		switch dumpValue := dumpValue.(type) {
		case index.IndexRow:
			p := KVPair{K: dumpValue.Key(), V: dumpValue.Value()}
			err = kvpw.Write(&p)
			if err != nil {
				return fmt.Errorf("error writing row: %v", err)
			}

		case error:
			return fmt.Errorf("error dumping row: %v", dumpValue)
		}
	}
	return nil
}