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]>
