aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/fulltextindex/README.fti2
-rw-r--r--contrib/fulltextindex/WARNING25
-rw-r--r--contrib/fulltextindex/fti.c2
-rw-r--r--contrib/fulltextindex/fti.sql.in6
-rw-r--r--contrib/fulltextindex/uninstall.sql1
5 files changed, 31 insertions, 5 deletions
diff --git a/contrib/fulltextindex/README.fti b/contrib/fulltextindex/README.fti
index cdf15c24da9..236e42c76fd 100644
--- a/contrib/fulltextindex/README.fti
+++ b/contrib/fulltextindex/README.fti
@@ -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
index 00000000000..ea60db30eec
--- /dev/null
+++ b/contrib/fulltextindex/WARNING
@@ -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.
+
diff --git a/contrib/fulltextindex/fti.c b/contrib/fulltextindex/fti.c
index 6c3e2fb888e..7620c0640ce 100644
--- a/contrib/fulltextindex/fti.c
+++ b/contrib/fulltextindex/fti.c
@@ -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);
diff --git a/contrib/fulltextindex/fti.sql.in b/contrib/fulltextindex/fti.sql.in
index c8e705b90f9..68c3f1857e1 100644
--- a/contrib/fulltextindex/fti.sql.in
+++ b/contrib/fulltextindex/fti.sql.in
@@ -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
index 00000000000..02ad6ee602a
--- /dev/null
+++ b/contrib/fulltextindex/uninstall.sql
@@ -0,0 +1 @@
+DROP FUNCTION fti() CASCADE;