Index: openacs-4/packages/acs-core-docs/www/install-full-text-search-openfts.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-full-text-search-openfts.html,v diff -u -r1.7.2.1 -r1.7.2.2 --- openacs-4/packages/acs-core-docs/www/install-full-text-search-openfts.html 18 Jun 2010 21:29:34 -0000 1.7.2.1 +++ openacs-4/packages/acs-core-docs/www/install-full-text-search-openfts.html 12 Dec 2010 00:07:02 -0000 1.7.2.2 @@ -1,56 +1,65 @@ - -
By Joel Aufrecht and Malte Sussdorff
+ +By Joel Aufrecht and Malte Sussdorff
OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff.OpenFTS and tsearch1 use is deprecated in favor of Tsearch2. See - Install Full Text Search using Tsearch2. Tsearch2 is much easier to install, requiring only + Install Full Text Search using Tsearch2. Tsearch2 is much easier to install, requiring only compilation of one module from PostgreSQL contrib, with an +<<<<<<< install-full-text-search-openfts.html automated install process using the tsearch2-driver package.
If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and AOLserver. You will need the openfts tarball in /tmp.
Install Tsearch. This is a PostgreSQL module that OpenFTS requires.
[root root]# su - postgres [postgres pgsql]$ cd /usr/local/src/postgresql-7.3.4/contrib/tsearch/ [postgres tsearch]$ make +======= + automated install process using the tsearch2-driver package.If you want full text search, and you are running PostgreSQL, install this module to support FTS. Do this step after you have installed both PostgreSQL and + AOLserver. You will need the openfts + tarball in
/tmp
.
Install Tsearch. This is a PostgreSQL module that + OpenFTS requires.
[root root]#su - postgres
+[postgres pgsql]$cd /usr/local/src/postgresql-7.3.4/contrib/tsearch/
+[postgres tsearch]$make
+>>>>>>> 1.9 sed 's,MODULE_PATHNAME,$libdir/tsearch,g' tsearch.sql.in >tsearch.sql /usr/bin/flex -8 -Ptsearch_yy -o'parser.c' parser.l(many lines omitted) rm -f libtsearch.so ln -s libtsearch.so.0.0 libtsearch.so -[postgres tsearch]$ make install +[postgres tsearch]$make install
mkdir /usr/local/pgsql/share/contrib mkdir /usr/local/pgsql/doc/contrib (2 lines omitted) /bin/sh ../../config/install-sh -c -m 755 libtsearch.so.0.0 /usr/local/pgsql/lib/tsearch.so -[postgres tsearch]$ exit +[postgres tsearch]$exit
logout [root root]# su - postgres cd /usr/local/src/postgresql-7.3.4/contrib/tsearch make make install -exitUnpack the OpenFTS tarball and compile and install - the driver.
[root root]# cd /usr/local/src -[root src]# tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz -[root src]# cd /usr/local/src/Search-OpenFTS-tcl-0.3.2/ -[root Search-OpenFTS-tcl-0.3.2]# ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver --with-tcl=/usr/lib/ +exitUnpack the OpenFTS tarball and compile and install + the driver.
[root root]#cd /usr/local/src
+[root src]#tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz
+[root src]#cd /usr/local/src/Search-OpenFTS-tcl-0.3.2/
+[root Search-OpenFTS-tcl-0.3.2]#./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver --with-tcl=/usr/lib/
checking prefix... /usr/local checking for gcc... gcc (many lines omitted) configure: creating ./config.status config.status: creating Makefile.global -[root Search-OpenFTS-tcl-0.3.2]# make +[root Search-OpenFTS-tcl-0.3.2]#make
(cd parser; make all) make[1]: Entering directory `/usr/local/src/Search-OpenFTS-tcl-0.3.2/parser' (many lines omitted) packages provided were {Lingua::Stem::Snowball 0.3.2} processed fts_base_snowball.tcl -[root Search-OpenFTS-tcl-0.3.2]# cd aolserver -[root aolserver]# make -gcc -c -fPIC -DPACKAGE=\"OPENFTS\" -DVERSION=\"0.3.2\" -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STR +[root Search-OpenFTS-tcl-0.3.2]#cd aolserver
+[root aolserver]#make
+gcc -c -fPIC -DPACKAGE=\"OPENFTS\" -DVERSION=\"0.3.2\" -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STR (many lines omitted) n_stem.o italian_stem.o norwegian_stem.o portuguese_stem.o russian_stem.o nsfts.o -o nsfts.so -[root aolserver]# cp nsfts.so /usr/local/aolserver/bin/ +[root aolserver]#cp nsfts.so /usr/local/aolserver/bin/
[root aolserver]# cd /usr/local/src tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz @@ -60,75 +69,79 @@ cd aolserver make cp nsfts.so /usr/local/aolserver/bin -Build some supplemental modules.
[root aolserver]# cd /usr/local/src/Search-OpenFTS-tcl-0.3.2 -[root Search-OpenFTS-tcl-0.3.2]# cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.3.4/contrib -[root Search-OpenFTS-tcl-0.3.2]# cd /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts -[root pgsql_contrib_openfts]# make +Build some supplemental modules.
[root aolserver]#cd /usr/local/src/Search-OpenFTS-tcl-0.3.2
+[root Search-OpenFTS-tcl-0.3.2]#cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.3.4/contrib
+[root Search-OpenFTS-tcl-0.3.2]#cd /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts
+[root pgsql_contrib_openfts]#make
sed 's,MODULE_PATHNAME,$libdir/openfts,g' openfts.sql.in >openfts.sql gcc -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -I. -I../../src/include -c -o openfts.o openfts.c gcc -shared -o openfts.so openfts.o rm openfts.o -[root pgsql_contrib_openfts]# su postgres -[postgres pgsql_contrib_openfts]$ make install +[root pgsql_contrib_openfts]#su postgres
+[postgres pgsql_contrib_openfts]$make install
/bin/sh ../../config/install-sh -c -m 644 openfts.sql /usr/local/pgsql/share/contrib /bin/sh ../../config/install-sh -c -m 755 openfts.so /usr/local/pgsql/lib /bin/sh ../../config/install-sh -c -m 644 ./README.openfts /usr/local/pgsql/doc/contrib -[postgres pgsql_contrib_openfts]$ exit +[postgres pgsql_contrib_openfts]$exit
[root pgsql_contrib_openfts]# cd /usr/local/src/Search-OpenFTS-tcl-0.3.2 cp -r pgsql_contrib_openfts /usr/local/src/postgresql-7.3.4/contrib cd /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts make su postgres make install +<<<<<<< install-full-text-search-openfts.html exit
If you are installing Full Text Search, add required +>>>>>>> 1.9 packages to the new database. (In order for full text search - to work, you must also install the PostgreSQL - OpenFTS module and prerequisites.)
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql + to work, you must also install the PostgreSQL + OpenFTS module and prerequisites.)[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$/usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql
BEGIN CREATE (many lines omitted) INSERT 0 1 COMMIT -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql +[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$/usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql
CREATE CREATE [$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ /usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql -/usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sqlNote
+/usr/local/pgsql/bin/psql $OPENACS_SERVICE_NAME -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql
Note
If you get the error - ERROR: could not access file "$libdir/tsearch": no such file or directory +
ERROR: could not access file "$libdir/tsearch": no such file or directory
It is probably because PostgreSQL's libdir configuration variable points to a diffent directory than where tsearch is. You can find out where PostgreSQL expects to find tsearch via -pg_config --pkglibdir-
If you have installed OpenFTS, you can enable it for this service. Uncomment this line from config.tcl. (To uncomment a line in a tcl file, remove the # at the beginning of the line.)
#ns_param nsfts ${bindir}/nsfts.so
Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.
Click on the Install -software link.
Click on the Install -new service link.
Click on the Install link next to OpenFTS Driver.
Restart the service.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ svc -t /service/$OPENACS_SERVICE_NAME -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$
Wait a minute, then browse back to the home page.
Click on Admin on the top of the screen.
Click on Main Site Administration in the "Subsite Administration" section.
Click on Site Map in the "Advanced Features" section.
Mount the OpenFTS Full Text Search Engine in the site map.
Click the new sub folder link on the "/" line, the first line under Main Site:/.
Type openfts -and click New.
On the new openfts line, click the mount link.
Click OpenFTS -Driver.
On the openfts line, click set parameters.
Change openfts_tcl_src_path to /usr/local/src/Search-OpenFTS-tcl-0.3.2/ and click Set Parameters -
Mount the Search interface in the site map.
Click the -new sub folder link on the -Main Site line.
Type search -and click New.
Click the new -application link on the search - line.
Type search +
pg_config --pkglibdir
+
If you have installed OpenFTS, you can enable it for this service. Uncomment this line from
config.tcl
. (To uncomment a line in a tcl file, remove the#
at the beginning of the line.)#ns_param nsfts ${bindir}/nsfts.so
Click
Admin
on the top of the default home page. If prompted, log in with the account and password you entered during install.Click on the
Install +software
link.Click on the
Install +new service
link.Click on the
Install
link next to OpenFTS Driver.Restart the service.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$svc -t /service/$OPENACS_SERVICE_NAME
+[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$Wait a minute, then browse back to the home page.
Click on
Admin
on the top of the screen.Click on
Main Site Administration
in the "Subsite Administration" section.Click on
Site Map
in the "Advanced Features" section.Mount the OpenFTS Full Text Search Engine in the site map.
Click the
new sub folder
link on the "/" line, the first line under Main Site:/.Type
openfts
+and clickNew
.On the new
openfts
line, click themount
link.Click
OpenFTS +Driver
.On the
openfts
line, clickset parameters
.Change
openfts_tcl_src_path
to/usr/local/src/Search-OpenFTS-tcl-0.3.2/
and clickSet Parameters
+Mount the Search interface in the site map.
Click the +
new sub folder
link on the +Main Site line.Type
search
+and clickNew
.Click the
new +application
link on thesearch
+ line.Type
search
where it says -untitled, choose -search from the +untitled
, choose +search
from the drop-down list, and click -New. -Restart the service.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ svc -t /service/$OPENACS_SERVICE_NAME -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$
Wait a minute, then click on Main Site at the top of the page.
Initialize the OpenFTS Engine. This creates a set of tables in the database to support FTS.
Near the bottom of the page, click on the OpenFTS Driver link. Click on Administration. -Click on Initialize OpenFTS Engine. -Click Initialize OpenFTS Engine.
Add the FTS Engine service contract
Click on the DevAdmin.
Click on the Service Contract link.
On the FtsEngineDriver +
New
. +Restart the service.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$svc -t /service/$OPENACS_SERVICE_NAME
+[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$Wait a minute, then click on
Main Site
at the top of the page.Initialize the OpenFTS Engine. This creates a set of tables in the database to support FTS.
Near the bottom of the page, click on the
OpenFTS Driver
link. Click onAdministration
. +Click onInitialize OpenFTS Engine
. +ClickInitialize OpenFTS Engine
.Add the FTS Engine service contract
Click on the
DevAdmin
.Click on the
Service Contract
link.On the
FtsEngineDriver
line, click -Install. -Restart the service.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ svc -t /service/$OPENACS_SERVICE_NAME -[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$
Enabling Full Text Search in packages at the moment is not trivial. It involves a couple of steps, which I will illustrate taking lars-blogger as an example package
Install the package. -
Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.
Click on the Install - software link.
Click on the Install - new application link.
Click on the Install link next to Weblogger.
Install all required packages as well (always say okay until you shall restart the server)
-
Load the service contracts datamodell and enable the service contract
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd packages/lars-blogger/sql/postgresql -[$OPENACS_SERVICE_NAME postgresql]$ psql $OPENACS_SERVICE_NAME -f lars-blogger-sc-create.sql
Note: Usually this script is called package_name-sc-create.sql
Restart the service.
[$OPENACS_SERVICE_NAME postgresql]$ svc -t /service/$OPENACS_SERVICE_NAME - [$OPENACS_SERVICE_NAME postgresl]$
If you are lucky, Full Text Search is enabled now, if not consult http://openacs.org/forums/message-view?message_id=154759. This link also contains some hints on how to make sure it is enabled.
View comments on this page at openacs.org +Install
. +
Restart the service.
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ svc -t /service/$OPENACS_SERVICE_NAME
+[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$
Enabling Full Text Search in packages at the moment is not trivial. It involves a couple of steps, which I will illustrate taking lars-blogger as an example package
Install the package. +
Click Admin
on the top of the default home page. If prompted, log in with the account and password you entered during install.
Click on the Install
+ software
link.
Click on the Install
+ new application
link.
Click on the Install
link next to Weblogger.
Install all required packages as well (always say okay until you shall restart the server)
+
Load the service contracts datamodell and enable the service contract
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd packages/lars-blogger/sql/postgresql
+[$OPENACS_SERVICE_NAME postgresql]$ psql $OPENACS_SERVICE_NAME -f lars-blogger-sc-create.sql
Note: Usually this script is called package_name-sc-create.sql
Restart the service.
[$OPENACS_SERVICE_NAME postgresql]$ svc -t /service/$OPENACS_SERVICE_NAME
+ [$OPENACS_SERVICE_NAME postgresl]$
If you are lucky, Full Text Search is enabled now, if not consult http://openacs.org/forums/message-view?message_id=154759. This link also contains some hints on how to make sure it is enabled.