and me. I wrote the summary)
The PostgreSQL search package works fine, so for the implementation of
.LRN search, we want to leverage what is there.
The operations which need to be supported for this release are:
* retrieve items for a list of given search words
* Retrieve html markup for a given id
* index an item: insert, update, delete items
Currently the service-contracts in search provide these contracts:
FtsEngineDriver has these operations
FtsContentProvider has these operations
Currently these service-contracts are implemented with the
acs-service-contracts package, but we want to port them to the
callbacks provided by OpenACS 5.2 To achieve this under .LRN 2.1.1 the
callbacks need to be backported to .LRN 2.1.1. The backported code
will be isolated in a package e.g. dotlrn-backports.
Intermedia has its own indexing queue, this code can be safely removed
from the Oracle search package.
The search operation needs to be a bulk operation, you should be able
to pass in words (and a range) and you'll be returned items ready to
be displayed. There should be a "return marked up HTML" operation
called from within the search procedure. Whereas search definitely
needs to be a bulk operation, this may be a few single queries - it
should be tested on realistic data.
The "index an item" operations should not be run within the database I
think, but with callbacks. In the long run (and mid and short run)
this is probably a lot more extensible and maintainable.