Forum OpenACS Q&A: Search: implementing FtsEngineDriver contract with intermedia-driver

Still trying to get search and intermedia-driver to work together. I started looking at the code.

First, intermedia-driver defines TCL proc ::callback::search::index::impl::intermedia-driver, and the corresponding procs for the other methods of the contract, i.e., update_index, unindex, search, summary, driver_info.

But a little further down in the file, in intermedia::install::register_fts_impl, it specifies

	aliases {
	        search intermedia::search
	        index intermedia::index
	        unindex intermedia::unindex
	        update_index intermedia::update_index
	        summary intermedia::summary
	        info intermedia::driver_info
	}
And when search tried to call, e.g., intermedia::search, that proc (obviously) didn't exist, resulting in a server error.

BTW, I just tried to reproduce that, and got a different error:

nsoracle.c:3904:ora_tcl_command: error in `OCIStmtExecute ()': ORA-00904: "DOTLRN_PRIVACY"."GUEST_P": invalid identifier

SQL: select !>>>!dotlrn_privacy.guest_p(:user_id) from dual
I guess some dotLRN dependency slipped into the search package. This is a plain OpenACS site.

I'd appreciate any help regarding what to change to make full text search work.

Newer finding: intermedia::search does actually exist. But the other five procs seem indeed missing.
Maybe this doesn't matter, because search uses the callback interface and not the Service Contract.

Remaining question: What's the intended mechanism for getting content into the site wide index?

Update: Dave Bauer cleaned up intermedia-driver. It works now only with the modern callback interface -- no more service contract (nor duplicate procs). He also took care of the dotLRN dependency by applying patch 812 for bug 3045.
Thanks Dave!

Searchable content is still provided through service contract FtsContentProvider. (That part doesn't work -- bug_tracker::search::bug::datasource calls "ad_conn subsite_id" from a scheduled proc, which fails.)