此模块为快速、不可变的磁盘键值数据库格式定义编写器和读卡器类。当前的格式主要基于D.J.Bernstein的CDB格式(http://cr.yp.to/cdb.html)。
whoosh.filedb.filetables.
HashWriter
(dbfile, magic=b'HSH3', hashtype=0)¶实现快速磁盘键值存储。这个散列使用两级散列方案,其中一个键被散列,散列值的低8位被用来索引到256个散列表中的一个。这基本上是CDB算法,但与CDB不同,此对象以串行方式写入所有数据(它不会向后搜索以覆盖末尾的信息)。
与CDB不同,这种格式使用64位文件指针,因此文件长度基本上是无限的。但是,每个键和值的长度必须小于2 GB。
参数: |
|
---|
add
(key, value)¶向文件中添加键/值对。请注意,键不需要是唯一的。可以在同一个键下存储多个值,并使用 HashReader.all()
.
add_all
(items)¶方便的方法添加一个序列 (key, value)
对。这和调用一样 HashWriter.add()
在序列中的每对上。
whoosh.filedb.filetables.
HashReader
(dbfile, length=None, magic=b'HSH3', startoffset=0)¶Reader for the fast on-disk key-value files created by HashWriter
.
参数: |
|
---|
all
(key)¶生成与给定键关联的值序列。
open
(storage, name)¶打开哈希文件的便利方法 whoosh.filedb.filestore.Storage
对象和名称。这需要打开文件并将其长度传递给初始值设定项。
ranges_for_key
(key)¶生成一个序列 (datapos, datalength)
tuples associated with the given key.
whoosh.filedb.filetables.
OrderedHashWriter
(dbfile)¶实现磁盘上的哈希,但要求按顺序添加键。安 OrderedHashReader
然后可以根据顺序查找“最近的键”。
whoosh.filedb.filetables.
OrderedHashReader
(dbfile, length=None, magic=b'HSH3', startoffset=0)¶参数: |
|
---|