Andreas Jung wrote:
Is there anything you can do in the index_object method to re-use ZCatalog's "get all attributes and call them if they're callable"?
Don't understand the question...maybe I don't know this ZCatalog feature.
My perception is that the 'classic' ZCatalog Indexes have a method something like: def getValue(self,obj): try: value = getattr(obj,self.id) # self.id is the name of the index. # The interface doesn't specify how to # get hold of this :-S if callable(value): value=value() except AttributeError,TypeError: value=None return value ...which gets the value to index. I was wondering if that function is available anywhere rather than having to re-implement it each time you write a new pluggable index. That said, I guess the 'classic' indexes have been re-implemented as PluggableIndexes?
In uniqueValues, what do the lengths that withLengths returns actually mean?
Good question - I think uniqueValues is only used for FieldIndex. I think you usually must not implement it - I must check this...
Well, IMHO, uniqueValues shouldn't be part of the interface. AFAIK, it only makes sense with certain types of index: KeywordIdnexes and possibly FieldIndexes. Is that the case?
In _apply_index, are ResultSet objects and how to build them documented anywhere? What is cid used for?
Best way is to take a look in PathIndex.py..
OK :-)
There is a new API for passing parameters to the searchResults() of the ZCatalog (see ZCatalog/help/ZCatalog_Parameters.stx and doc/changenotes). The query_options is a list of options that the index is interested when it gets a search request.
OK...
How abotu a 'Generic Pluggable Index' that lets you implement the interface using Python Scripts, ZSQL methods, etc?
uuuuuuuhhhhhhhhhhhhh.....I think you can write that as a Product.
hehe... cool :-)
But I don't think we will write this. And I don't like the idea...I prefer to write such a package with VI and store it in the filesystem :-)
I agree, but when you're exploring what you want to do and don't have access to the filesystem, it could be really useful. thanks for the answers, Chris