]> granicus.if.org Git - postgresql/commitdiff
In case Florian and I don't finish his changes to this contrib before
authorBruce Momjian <bruce@momjian.us>
Mon, 2 Sep 2002 06:27:04 +0000 (06:27 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 2 Sep 2002 06:27:04 +0000 (06:27 +0000)
beta, at least get this stuff in.

ftipatch.txt - Updates to docs and scripts.  Run in the fulltextindexdir
WARNING - Add to fulltextindex dir
uninstall.sql - Add to fulltextindex dir

contrib/fulltextindex/README.fti
contrib/fulltextindex/WARNING [new file with mode: 0644]
contrib/fulltextindex/fti.c
contrib/fulltextindex/fti.sql.in
contrib/fulltextindex/uninstall.sql [new file with mode: 0644]

index cdf15c24da911093ef124050bbfc6f4ea4d60346..236e42c76fd9494227dabf7789e49a7f415a349e 100644 (file)
@@ -50,7 +50,7 @@ string), btree indices can be used by PostgreSQL.
 Now, how do we create the trigger that maintains the fti-table? First: the
 fti-table should have the following schema:
 
-       create cds-fti ( string varchar(N), id oid );
+       create cds-fti ( string varchar(N), id oid ) without oids;
 
 Don't change the *names* of the columns, the varchar() can in fact also
 be of text-type. If you do use varchar, make sure the largest possible
diff --git a/contrib/fulltextindex/WARNING b/contrib/fulltextindex/WARNING
new file mode 100644 (file)
index 0000000..ea60db3
--- /dev/null
@@ -0,0 +1,25 @@
+WARNING
+-------
+
+This implementation of full text indexing is very slow and inefficient.  It is
+STRONGLY recommended that you switch to using contrib/tsearch which offers these
+features:
+
+Advantages
+----------
+* Actively developed and improved
+* Tight integration with OpenFTS (openfts.sourceforge.net)
+* Orders of magnitude faster (eg. 300 times faster for two keyword search)
+* No extra tables or multi-way joins required
+* Select syntax allows easy 'and'ing, 'or'ing and 'not'ing of keywords
+* Built-in stemmer with customisable dictionaries (ie. searching for 'jellies' will find 'jelly')
+* Stop words automatically ignored
+* Supports non-C locales
+
+Disadvantages
+-------------
+* Only indexes full words - substring searches on words won't work.
+       eg. Searching for 'burg' won't find 'burger'
+
+Due to the deficiencies in this module, it is quite likely that it will be removed from the standard PostgreSQL distribution in the future.
+
index 6c3e2fb888eecfcfd359aec2f0ea9045e272b1f9..7620c0640ce6dbc4eb17cbbf7b60a5f2fa5af79c 100644 (file)
@@ -25,7 +25,7 @@
  *       '/usr/local/pgsql/lib/contrib/fti.so' language 'C';
  *
  *     -- Create the FTI table
- *     create table product_fti (string varchar(255), id oid);
+ *     create table product_fti (string varchar(255), id oid) without oids;
  *
  *     -- Create an index to assist string matches
  *     create index product_fti_string_idx on product_fti (string);
index c8e705b90f96d17275871998fe8a254e3cda17a7..68c3f1857e1b3fa647d5108c8ea1ebfef5b6c8a9 100644 (file)
@@ -1,3 +1,3 @@
-create function fti() returns trigger as
-       'MODULE_PATHNAME'
-       language 'C';
\ No newline at end of file
+CREATE OR REPLACE FUNCTION fti() RETURNS trigger AS
+       'MODULE_PATHNAME', 'fti'
+       LANGUAGE 'C' VOLATILE CALLED ON NULL INPUT;
diff --git a/contrib/fulltextindex/uninstall.sql b/contrib/fulltextindex/uninstall.sql
new file mode 100644 (file)
index 0000000..02ad6ee
--- /dev/null
@@ -0,0 +1 @@
+DROP FUNCTION fti() CASCADE;