On 04.05.11 22:38, "Dolan, Kelly" <kdolan@inmedius.com> wrote:
>If I modify SearchManager such that it
>implements EventListener as opposed to SynchronousEventListener indexing
>now occurs
>in a background thread. If I proceed with such a change, will this break
>anything in Jackrabbit? i.e., is there any operation that modifies the
>repository, immediately does a search and expects to find what was just
>added
>and if it does not, fails?
I don't know that exact part of the search index implementation to judge
what this change will do, but I think this would break 6.5 "Search Scope"
from the JCR spec [0]:
"A query must search the persistent workspace associated with the current
session. It may take into account pending changes to the persistent
workspace; that is, changes which are either unsaved or, within a
transaction, saved but uncommitted."
That means, as soon save() returns (== persisted), the index should be up
to date. This might be important for certain applications that for example
change something, save it and then run a search again to update the view -
this scenario would be broken and the app would have no information how
long to wait until the search index is up to date.
[0] http://www.day.com/specs/jcr/2.0/6_Query.html#6.5%20Search%20Scope
Regards,
Alex
--
Alexander Klimetschek
Developer // Adobe (Day) // Berlin - Basel
|