I try to enable "fuzzystrmatch" function in Postgresql 8.3.9, following is my solution:
- DO NOT install Postgresql under the default "Progrem File" directory, because the it can't not recognize the white space inside the path! I switch to some directory not containing while space, like "C:/PostgreSQL/8.3/". I will use this as my Postgres home directory. I install and reinstall several times and figure out this isssue. Actually. it is a very common problem using software ported form Linux world.
- You will find lots of DLL files under "lib". But we should go to "share/contrib" directory. Run:
- C:/PostgreSQL/8.3/bin>psql -d postgres -U postgres -f C:/PostgreSQL/8.3/share/contrib/fuzzystrmatch.sql
SET
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
- C:/PostgreSQL/8.3/bin>psql -d postgres -U postgres -f C:/PostgreSQL/8.3/share/contrib/fuzzystrmatch.sql
- You should note that this funtion must be specified to any database you want. It is not a global setting! Then try SELECT levenshtein('GUMBO', 'GAMBOL'); or SELECT name FROM element WHERE difference(name, 'item') > 2;
- If you want to check out more fuzzy search, go to reference [1]. There will be another solution, please refer to [2].
- Next, I will try xml and full-text search functions.
Reference:
[1]http://www.postgresql.org/docs/8.3/static/fuzzystrmatch.html
[2]http://stackoverflow.com/questions/430123/how-do-i-enable-the-postgresql-function-profiler
[3] FAQ on installation for Windows: http://wiki.postgresql.org/wiki/Running_&_Installing_PostgreSQL_On_Native_Windows
[4] Thanks this page poniting out the right location for the sql file: http://dcmms.sourceforge.net/doc/administration/index.html#fuzzystrmatch_manual_install