On Mon, Nov 8, 2010 at 9:07 AM, Wichert Akkerman <wich...@wiggy.net> wrote:

> I have some code (from Chris) which rebuilds a repoze.catalog instance.
> It uses a very simple algorithm:
>   catalog.clear()
>   for each obj in root:
>      index object
>      if object is folderish:
>          process al its children
> unfortunately there is one problem with this code: any stale items in
> catalog.document_map are not cleared, so there is still cruft remaining
> after rebuilding the catalog. Can that be considered to be a bug?
>  The document_map, while sometimes stored on the catalog, is not known to
the catalog.  If you want to clear it, you need to do so explicitly.  This
is because r.catalog makes no assumptions about how you retrieve a document
given a docid.  The DocumentMap implementation is provided to fit a common
case, but is still up to the app to manage.

Depending on what you're trying to do, though, a more satisfying algorithm
might be to use the document_map to find previously indexed objects and
reindex them.

Repoze-dev mailing list

Reply via email to