Forum OpenACS Q&A: Problems with Search installation (postgres + tsearch2)

Hi,

I am new to OpenACS. What attracts me most is the site wide search functionality that is promised to work out of the box - now this is the package where I have the most problems with during installation.

OpenACS is running for me on a debian sarge box, using the prebuilt packages that are available via apt-get (this is postgresql 7.4.7 + postgresql-contrib and aolserver 4.0.10). For installation of full text search with tsearch2, I followed the instructions on
http://www.openacs.com/doc/openacs-5-2/install-full-text-search-tsearch2.html - using the described sql update script from http://www.sai.msu.su/~megera/postgres/gist/tsearch/V2/regprocedure_update.sql instead of the patch (I didn't want to recompile anything). Tsearch2 seems to be installed correctly - at least I can find tsearch2.so in /usr/lib/postgresql/lib.

When I install the Search application from the admin interface of my site and want to have a look at it, it tells me:

"Search is not currently configured. Please contact the webmaster to enable it."

The log says:
"Warning: ACS-SC: Function Not Found: AcsSc.ftsenginedriver.info.tsearch2_driver"

OK, there is a section in the installation guide on
http://www.openacs.com/doc/openacs-5-2/install-full-text-search-tsearch2.html
called "Install Full Text Search Engine Package in OpenACS", and I tried to follow exactly the steps described there, but I came only to step 2... step 3 says "Click 'Install new service'" - but there is no 'install new service' link anywhere on this page and thus I can not find the page telling me anything about "Tsearch2 Driver".

What is going wrong here? I am stuck but I definitely need site wide search...
Any help would be greatly appreciated.

Eckhard

You have to install the apm package "tsearch2-driver" and to mount /search manually from the site map. for some reasons it is not mounted automatically.

-gustaf
PS: in general it helps if you mention the exact openacs version.

Collapse
Posted by Dave Bauer on
To install the tsearch2-driver go to

yousite/acs-admin/install and click Install From Local.

At the top of the next screen click Service then when the page refreshes with the list of services click tsearch2-driver.

This will install the bindings from tsearch to the search package.

I don't find the tsearch2-driver there. The page you describe is there, but it tells me:
"No packages on your system need upgrading."

Is there a manual way to install the driver?

BTW, I installed OpenACS-5.2.2 and upgraded to the latest package from the online repository.

Sorry, the message is

"There are no un-installed applications in your file system."

Eckhard, you can install either from your local repository (if you have downloaded tsearch2-driver locally -- check your packages directory) or directly from the openacs repository. The installer will guide you through it (just find the two links saying installing from the local repository OR installing from the OpenACS repository. Choose the latter if you don't have the package locally.

Once you have installed the tsearch2-driver package you will need to activate the bindings between the FtsEngineDriver contract and the implementation you need (i.e. tsearch2_driver). (*) Restart your server and the search package will be activated/enabled. Yet, make sure that you (also) have some activated bindings for providing data to the search package (the data that the search package will be indexing for you, for example notes, forum messages, etc).

(*) This extra step is required as there might be several possible bindings (for example, an alternative binding is the one between the FtsEngineDriver and the openfts-driver implementation). I'm posting this just for informational purposes. For the given task (i.e. enabling search) it is best to use the tsearch2-driver binding.

Hmm - I feel somewhat confused... I also tried this:
- Click on "Control Panel" (top right)
- Click on "Install Software" (middle of page, left)
- Click on "Install from Repository" (middle left)
- Click on "Service".

This reveals a list that starts like this:

ApplicationTrack Portlet \t New Submission or Maturity Unknown \t 0.1d \t Service
Assessment Portlet \t New Submission or Maturity Unknown \t 2.2.0 \t Service
Attachments Attachment support \t New Submission or Maturity Unknown \t 0.10 \t Service
Bulk Mail Portlet \t New Submission or Maturity Unknown \t 2.2.0 \t Service
Calendar Portlet \t New Submission or Maturity Unknown \t 2.2.0 \t Service
...

I clicked through the whole site on almost every link, and also grep'ed the base directory where the installation lives - nothing there called tsearch2-driver or tsearch2_driver (except in acs-core-docs).

Maybe it is a bug in the latest release... Where can I find drivers and packages to download manually?

OK, I finally found out that the package is not available in the 5-2 repository, but can be checked out from CVS... It is in the oacs-5-2 branch.

Thank you all for your help.

One another thing... how do I activate bindings for providing data to the search package, as you mentioned?

Yes, it is included in oacs-5-2. For the bindings, go to http://yourdomain/acs-service-contract/ or "control panel -> service contracts (pages)". Check "Valid uninstalled bindings" if it is the binding is not already activated. You should also need the FtsContentProvider bindings but those are activated by default upon package installation (for example, forums, file-storage, etc).