当前位置: 首页>>代码示例>>Golang>>正文


Golang KVReader.RangeIterator方法代码示例

本文整理汇总了Golang中github.com/acgshare/bleve/index/store.KVReader.RangeIterator方法的典型用法代码示例。如果您正苦于以下问题:Golang KVReader.RangeIterator方法的具体用法?Golang KVReader.RangeIterator怎么用?Golang KVReader.RangeIterator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/acgshare/bleve/index/store.KVReader的用法示例。


在下文中一共展示了KVReader.RangeIterator方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: dumpRange

func (udc *UpsideDownCouch) dumpRange(kvreader store.KVReader, rv chan interface{}, start, end []byte) {
	it := kvreader.RangeIterator(start, end)
	defer func() {
		cerr := it.Close()
		if cerr != nil {
			rv <- cerr
		}
	}()
	key, val, valid := it.Current()
	for valid {
		ck := make([]byte, len(key))
		copy(ck, key)
		cv := make([]byte, len(val))
		copy(cv, val)
		row, err := ParseFromKeyValue(ck, cv)
		if err != nil {
			rv <- err
			return
		}
		rv <- row

		it.Next()
		key, val, valid = it.Current()
	}
}
开发者ID:acgshare,项目名称:bleve,代码行数:25,代码来源:dump.go

示例2: visitRange

func visitRange(reader store.KVReader, start, end []byte, visitor KVVisitor) (err error) {
	it := reader.RangeIterator(start, end)
	defer func() {
		if cerr := it.Close(); err == nil && cerr != nil {
			err = cerr
		}
	}()
	k, v, valid := it.Current()
	for valid {
		var cont bool
		cont, err = visitor(k, v)
		if err != nil {
			// visitor encountered an error, stop and return it
			return
		}
		if !cont {
			// vistor has requested we stop iteration, return nil
			return
		}
		it.Next()
		k, v, valid = it.Current()
	}
	return
}
开发者ID:acgshare,项目名称:bleve,代码行数:24,代码来源:util.go


注:本文中的github.com/acgshare/bleve/index/store.KVReader.RangeIterator方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。