Я пытаюсь использовать функцию подобия в Пост-ГРЭС, чтобы сделать некоторое нечеткое текстовое соответствие, однако каждый раз, когда я пытаюсь использовать его, я получаю ошибку:
function similarity(character varying, unknown) does not exist
Если я добавляю явные броски для отправки текстовых сообщений, я получаю ошибку:
function similarity(text, text) does not exist
Мой запрос:
SELECT (similarity("table"."field"::text, %s::text)) AS "similarity", "table".* FROM "table" WHERE similarity > .5 ORDER BY "similarity" DESC LIMIT 10
Я должен сделать что-то к initalize pg_trgm?
Вам необходимо установить pg_trgm. В debian создайте исходный код sql: /usr/share/postgresql/8.4/contrib/pg_trgm.sql
. Из командной строки:
psql -f /usr/share/postgresql/8.4/contrib/pg_trgm.sql
Или внутри оболочки psql:
\i /usr/share/postgresql/8.4/contrib/pg_trgm.sql
По умолчанию сценарий устанавливается в общедоступной схеме, отредактируйте путь поиска вверху, если вы хотите установить его в другом месте (чтобы можно было удалить / обновить выполняется просто отбрасывая схему).