Homepage / Roadmap - bugs / Archived projects


Rob van Maris (project leader)

Roelof Jan Koekoek

Eduard Witteveen

Pierre van Rooden

Gerard van Enk


file Text search types proposal
Text search types proposal

file Minutes project meeting Nov 6th

file SearchQuery API introduction

file Proposed plan of action
What follows is a suggested plan of action for the project, - presenting a course of action, - providing solutions to some problems of design/architecture, - summing up impact on existing parts of MMBase and other current projects. This document is meant to serve as the basis for further thought and discussion, after which a final plan will be submitted.

file SearchQuery interface proposal
SearchQuery interface proposal

UML diagrams (Database search queries)

Database search queries

Project mission
This project focuses on the way database search queries are delivered and processed in MMBase.

Currently search queries are delivered as hardcoded SQL expressions. Because of this, queries that have to be device-independent (e.g. in the core classes of MMBase) can not take advantage of device-specific features that rely on a non-standard syntax.
Examples of such features are:

Just like support for different databases can be added to MMBase, it should be possible as well to add support for database extensions - like a text search engine.

What we are looking for is a pluggable architecture, allowing for a database and database extensions to be used. The databaselayer should be able to process incoming search requests and determine how these are executed most efficiently.

In order to achieve this, the following needs will be addressed:

The realization of this requires modifications to the MMBase core, and has impact on other current projects. The database layer needs to be modified, to enable the extra functionality of database extensions to be accessed. In addition to this, all MMBase code needs to get rid of code that bypasses the database layer by directly querying the database.

The project consists of three steps:
1 - Modify the database layer for a plugable architecture, that is able to support a number of databases and database extensions. All this in close collaboration with other related projects.
2 - Extension of configuration options. This should enable system administrators to supply settings like what kind of indexes have been applied on colums and what kind of searches these support. These settings will affect the way the database layer deals with search requests. A default configuration of MMBase will not make use of these features.
3 - Clean all MMbase code to make sure that all database calls are handled by the database layer.

Last project meeting was on Nov 6th 2002, see attachments for minutes.
Phase 1 has been completed (draft): a SearchQuery API has been designed, implemented and tested. See related urls.
Phase 2 has been completed (draft): the database support classes have been extended to handle the resulting search queries, and can be configured to extend basic functionality.
Phase 3 has been almost completed: a full status report will follow end of this month (januari 2003).