// 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 }