Index: openacs-4/packages/acs-core-docs/www/install-full-text-search.html =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/Attic/install-full-text-search.html,v diff -u -r1.11.2.7 -r1.11.2.8 --- openacs-4/packages/acs-core-docs/www/install-full-text-search.html 6 Jan 2004 14:20:51 -0000 1.11.2.7 +++ openacs-4/packages/acs-core-docs/www/install-full-text-search.html 11 Jan 2004 12:45:46 -0000 1.11.2.8 @@ -1,123 +1,123 @@ -Install Full Text Search

Install Full Text Search

By Joel Aufrecht and Malte Sussdorff

+Install Full Text Search

Install Full Text Search

By Joel Aufrecht and Malte Sussdorff


OpenACS docs are written by the named authors, and may be edited by OpenACS documentation staff. -

Install OpenFTS module

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 +

Install OpenFTS module

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.

  1. 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
    +      tarball in /tmp.

    1. 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
       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
      +
      su - postgres
       cd /usr/local/src/postgresql-7.3.4/contrib/tsearch
       make
       make install
      -exit
    2. Unpack 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/
      +exit
  2. Unpack 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
    +[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 
    +
    cd /usr/local/src 
     tar xzf /tmp/Search-OpenFTS-tcl-0.3.2.tar.gz
     cd /usr/local/src/Search-OpenFTS-tcl-0.3.2/
     ./configure --with-aolserver-src=/usr/local/src/aolserver/aolserver --with-tcl=/usr/lib/
     make
     cd aolserver
     make
     cp nsfts.so /usr/local/aolserver/bin
    -
  3. 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
    +
  4. 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
    +
    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
    -exit

Install OpenFTS prerequisites in PostgreSQL instance

If you are installing Full Text Search, add required +exit

Install OpenFTS prerequisites in PostgreSQL instance

If you are installing Full Text Search, add required packages to the new database. (In order for full text search to work, you must also install the PostgreSQL - OpenFTS module and prerequisites.)

[service0 service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql
+        OpenFTS module and prerequisites.)

[service0 service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql
 BEGIN
 CREATE
 (many lines omitted)
 INSERT 0 1
 COMMIT
-[service0 service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql
+[service0 service0]$ /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql
 CREATE
 CREATE
 [service0 service0]$
-/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql
-/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql

Enable OpenFTS in config.tcl

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

Install Full Text Search Engine

  1. Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.

  2. Click on the Install -software link.

  3. Click on the Install -new service link.

  4. Click on the Install link next to OpenFTS Driver.

  5. Restart the service.

    [service0 service0]$ svc -t /service/service0
    -[service0 service0]$
  6. Wait a minute, then browse back to the home page.

  7. Click on Admin on the top of the screen.

  8. Click on Main Site Administration in the "Subsite Administration" section.

  9. Click on Site Map in the "Advanced Features" section.

  10. Mount the OpenFTS Full Text Search Engine in the site map.

    1. Click the new sub folder link on the "/" line, the first line under Main Site:/.

    2. Type openfts -and click New.

    3. On the new openfts line, click the mount link.

    4. Click OpenFTS -Driver.

    5. On the openfts line, click set parameters.

    6. Change openfts_tcl_src_path to /usr/local/src/Search-OpenFTS-tcl-0.3.2/ and click Set Parameters +

      /usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/tsearch/tsearch.sql
      +/usr/local/pgsql/bin/psql service0 -f /usr/local/src/postgresql-7.3.4/contrib/pgsql_contrib_openfts/openfts.sql

    Enable OpenFTS in config.tcl

    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

    Install Full Text Search Engine

    1. Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.

    2. Click on the Install +software link.

    3. Click on the Install +new service link.

    4. Click on the Install link next to OpenFTS Driver.

    5. Restart the service.

      [service0 service0]$ svc -t /service/service0
      +[service0 service0]$
    6. Wait a minute, then browse back to the home page.

    7. Click on Admin on the top of the screen.

    8. Click on Main Site Administration in the "Subsite Administration" section.

    9. Click on Site Map in the "Advanced Features" section.

    10. Mount the OpenFTS Full Text Search Engine in the site map.

      1. Click the new sub folder link on the "/" line, the first line under Main Site:/.

      2. Type openfts +and click New.

      3. On the new openfts line, click the mount link.

      4. Click OpenFTS +Driver.

      5. On the openfts line, click set parameters.

      6. Change openfts_tcl_src_path to /usr/local/src/Search-OpenFTS-tcl-0.3.2/ and click Set Parameters

    11. Mount the Search interface in the site map.

      1. Click the -new sub folder link on the -Main Site line.

      2. Type search -and click New.

      3. Click the new -application link on the search - line.

      4. Type search +new sub folder link on the +Main Site line.

      5. Type search +and click New.

      6. Click the new +application link on the search + line.

      7. Type search where it says -untitled, choose -search from the +untitled, choose +search from the drop-down list, and click -New. -

    12. Restart the service.

      [service0 service0]$ svc -t /service/service0
      -[service0 service0]$
    13. Wait a minute, then click on Main Site at the top of the page.

    14. 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.

    15. Add the FTS Engine service contract

      1. Click on the DevAdmin.

      2. Click on the Service Contract link.

      3. On the FtsEngineDriver +New. +

    16. Restart the service.

      [service0 service0]$ svc -t /service/service0
      +[service0 service0]$
    17. Wait a minute, then click on Main Site at the top of the page.

    18. 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.

    19. Add the FTS Engine service contract

      1. Click on the DevAdmin.

      2. Click on the Service Contract link.

      3. On the FtsEngineDriver line, click -Install. -

    20. Restart the service.

      [service0 service0]$ svc -t /service/service0
      -[service0 service0]$

    Enable Full Text Search in packages

    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

    1. Install the package. -

      1. Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.

      2. Click on the Install - software link.

      3. Click on the Install - new application link.

      4. Click on the Install link next to Weblogger.

      5. Install all required packages as well (always say okay until you shall restart the server)

      -

    2. Load the service contracts datamodell and enable the service contract

      [service0 service0]$ cd packages/lars-blogger/sql/postgresql
      -[service0 postgresql]$ psql service0 -f lars-blogger-sc-create.sql

      Note: Usually this script is called package_name-sc-create.sql

    3. Restart the service.

      [service0 postgresql]$ svc -t /service/service0
      +Install.
      +

  11. Restart the service.

    [service0 service0]$ svc -t /service/service0
    +[service0 service0]$

Enable Full Text Search in packages

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

  1. Install the package. +

    1. Click Admin on the top of the default home page. If prompted, log in with the account and password you entered during install.

    2. Click on the Install + software link.

    3. Click on the Install + new application link.

    4. Click on the Install link next to Weblogger.

    5. Install all required packages as well (always say okay until you shall restart the server)

    +

  2. Load the service contracts datamodell and enable the service contract

    [service0 service0]$ cd packages/lars-blogger/sql/postgresql
    +[service0 postgresql]$ psql service0 -f lars-blogger-sc-create.sql

    Note: Usually this script is called package_name-sc-create.sql

  3. Restart the service.

    [service0 postgresql]$ svc -t /service/service0
                     [service0 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