Я пытаюсь реализовать поиск в веб-приложении, где я могу выполнять полный текстовый поиск по нескольким полям в таблице, которые также поддерживают частичные или слегка отклики на запросы.нечеткий полнотекстовый поиск в postgres
Мой план состоит в том, чтобы создать материализованное представление, а затем создать индекс для поиска нечетких (триграмм). Но я не совсем уверен, что это правильный путь.
Вот что у меня есть. Я уверен, что SQL неверен, но я действительно не знаю, как его исправить. Я по-прежнему новичок в этом. Первый раз работает вне ORM.
Я использую postgres 9.5.5.
CREATE MATERIALIZED VIEW search AS
SELECT word FROM ts_stat(
'SELECT (
setweight(to_tsvector(''simple'', location.name), ''A'')
|| setweight(to_tsvector(''simple'',locations.street), ''B'')
|| setweight(to_tsvector(''simple'',locations.state), ''C'')
|| setweight(to_tsvector(''simple'',locations.city), ''C'')
|| setweight(to_tsvector(''simple'',locations.zip,), ''B'') AS document,
)
FROM locations
GROUP BY locations.id
'
);
места ТАБЛИЦА
имя
улица
состояние
город
почтовый
геолокации
* "нечеткий поиск" * может быть в значительной степени все. Пожалуйста, объясните * точно, что вы пытаетесь достичь. И добавьте свое определение таблицы, мощности, версию Postgres. –
Обновленный вопрос, я надеюсь, что это яснее. Спасибо за советы! – user3791980
Определение таблицы включает типы данных и ограничения. Пример: http://stackoverflow.com/a/9790225/939860 –