Search engine adapters
The global search engine of Moodle, available as experimental feature till the Moodle 1.9 release, allows plugin new document types for being searched and indexed by the Lucene indexer.
Each module or block should have an adapter written to wrap the plugin's internal data model to a searchable document. The actual implementation allows a module to provide the search engine with a set of virtual documents. The search engine will index the text content of these documents, recording sufficiant data to access back the exact context in which it was appearing (i.e, access URL, course context, etc.).
Virtual documents are defined as subclasses of the SearchDocument class. Only the constructor of the subclass must be written in order to map an input record to an internal document definition.
The goals of the adapter are :
- extract all virtual documents from the module data model and give them to the indexer (index first construction) through an iterator.
- extract a single document for index update
- provide sufficiant information for index delete of obsolete content
- define the access URL that will access back the resource
- define the access check algorithm so that the user will only access resources he is allowed to
Adapters for modulesAny adapter for a module or a block must reside in the
/search/documentssubdirectory, and will be named such as