Hi,

here some very basic ideas for basic search integration:


*       The slide kernel itself is able to perform a basicsearch query by
scanning the structure, building subresult sets and merging them (don't ask
for performance).
*       A store specific implementation may perform all or part of the job.

A highsophisticated store would translate the query into an XQL (or SQL)
statement for example and leave the work to its database engine.
A less intelligent store for example may perform all the compare operations
(equal, lessThan, ...) and deliver sub result sets, the slide kernel then
would merge these sets according to the AND / OR operators in the query.

A BasicSearchQuery represents the query and is able to deliver a
SearchQueryResult using the execute method. It may serve as a base class for
store specific implementations. It hosts the information about the SELECT,
FROM, WHERE, ORDERBY and LIMIT. It also hold a tree of
BasicSearchExpressions.

A BasicSearchExpression represents exactly one operator (AND, GT, ...). It
may have the state resolved or unresolved.  If it is unresolved, it contains
the BasicSearchExpressions, on which the operation is to be executed.  If it
is resolved, it contains a SearchQueryResult, that represents the result set
of this BasicSearchExpression. The state transition from unresolved to
resolved may only happen, when all subsequent BasicSearchExpressions have
the state resolved.

A store specific implementation of BasicSearchQuery is free how to process
the tree of BasicSearchExpressions and if it resolves the root expression.
However, if the root expression is not resolved at the end of the execute
method, super.execute() must be called to guarantee, that a
SearchQueryResult is produced.

Any comments?

Martin Wallmer
Research & Development
Software AG                     ++49 6151 92 1831
Uhlandstr. 12
D 64297 Darmstadt


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to