What is modification, and why do we care? (was Re: [Zope3-dev]
Missing ObjectContentModifiedEvent)
Jim Fulton
jim at zope.com
Fri May 27 08:29:54 EDT 2005
Dieter Maurer wrote:
> Jim Fulton wrote at 2005-5-26 14:43 -0400:
>
>>...
>> Probably the indexes that we *most* want to avoid reindexing are
>> text indexes. We have a ISearchableText interface that we
>> commonly adapt objects to to get the text to index. We really
>> can't predict how this text is computed.
>
>
> Then, we probably do something wrong...
That's always a possibility. I think what we are doing is
pretty reasonable. Perhaps you have other suggestions.
>
>>...
>> A safer strategy seems to me to be to have the indexes themselves
>> responsible for detecting changes that they care about. I'm
>> pretty sure that some of the Zope 2 indexes are careful to avoid
>> reindexing, or at least avoid updating indexes if indexed values
>> haven't changed.
>
>
> Even computing the value for a text index (without any change
> to the index itself) can be very expensive: it may
> include expensive fetching of a large object,
> an expensive conversion (text extraction), expensive splitting
> and comparison to what is currently indexes.
Perhaps. It depends a lot on the application.
I suggest that, if this optimization is important, it might
be much easier and cleaner to make text extracttion and comparison
cheap, rather than, trying to solve the problem with a more complex
event model.
> I would not like this overhead for e.g. workflow state changes by
> default.
I think it would be very difficult to come up with rules
for deciding which events might effect a text value and which would not.
For example, I can easily imagine objects who's searchable text
depends on their workflow state.
Jim
--
Jim Fulton mailto:jim at zope.com Python Powered!
CTO (540) 361-1714 http://www.python.org
Zope Corporation http://www.zope.com http://www.zope.org
More information about the Zope3-dev
mailing list