Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在zodb中为我的对象建立索引有什么好的指南和/或建议吗?_Python_Indexing_B Tree_Zodb - Fatal编程技术网

Python 在zodb中为我的对象建立索引有什么好的指南和/或建议吗?

Python 在zodb中为我的对象建立索引有什么好的指南和/或建议吗?,python,indexing,b-tree,zodb,Python,Indexing,B Tree,Zodb,我将编写一个通用对象类,用于zodb。一旦这些对象被持久化到zodb对象图中,它们将自己添加到btree索引中 我以前从未真正做过这方面的工作,但有人会有任何资源和/或建议来做这件事吗 有了zodb在处理对象引用时的强大能力和良好的索引策略,我最终可以充分利用这两个数据库世界 任何其他想法都是非常受欢迎的,谢谢 看看: catalog是一个Python索引和搜索框架。它依赖于zope.index,它的大部分内部内容都取自zope.app.catalog。但是,与zope.app.catalog不

我将编写一个通用对象类,用于zodb。一旦这些对象被持久化到zodb对象图中,它们将自己添加到btree索引中

我以前从未真正做过这方面的工作,但有人会有任何资源和/或建议来做这件事吗

有了zodb在处理对象引用时的强大能力和良好的索引策略,我最终可以充分利用这两个数据库世界

任何其他想法都是非常受欢迎的,谢谢

看看:

catalog是一个Python索引和搜索框架。它依赖于zope.index,它的大部分内部内容都取自zope.app.catalog。但是,与zope.app.catalog不同,它在大型zope框架之外的任意Python应用程序中非常有用


这取决于您的索引需求,但当您只需要id的可访问性时,您可能不需要任何花哨的索引包

一旦这些对象被持久化到zodb对象图中,它们将自己添加到btree索引中

“添加他们自己”意味着,他们持有对他们的BTree/索引解决方案的引用。另一方面,你说的是“一旦它们被分散”,这意味着某种“将它们放入数据库”功能。所以我建议,只需一次完成对象的持久化和索引,就像这样:

def persist_obj(db, obj):
    tree = db.root()['mybtree']
    id = tree.maxKey() + 1
    obj.id = id
    tree[id] = obj

如果您的数据库有一个包装器,那么将其放在wour包装器的成员函数中是很自然的位置。

一个可能的答案是zcatalog或它的独立等价物。也就是说,我对zope总体上还不够熟悉,无法理解我是否会被迫采用它自己的一些方法。如果有人对此有指导意见,请提交答案!我似乎找不到任何关于zope.index的全面教程?它的主页显然是pypi页面,而不是zope页面。。。六羟甲基三聚氰胺六甲醚。。。