Полнотекстовый поиск в Postgresql

Полнотекстовый поиск в Postgresql

    tsvector и tsquery

    Для полнотекстового поиска в postgresql существуют типы данных: tsvector и tsquery tsvector - документ оптимизированный(нормализованный) для поиска составляющих текста, для нормализации текста в документе используется процедура to_tsvector
    tsquery - используется для нормализации запроса, если я правильно понимаю, текст запроса разбивается в массив слов разделенный символами, для преобразования поисковых запросов используется процедура: plainto_tsquery
    Иначе говоря поиск находит документ tsvector на запрос tsquery
    Для сопоставления используется оператор @@
    Пример:

    # sudo -u postgres psql -c "SELECT tag1, tag2, tag3, url_page, content_name \ FROM page_table \ WHERE to_tsvector(content_text) @@ plainto_tsquery('нам отправляют все ключи')" \ -x megabase -[ RECORD 1 ]+---------------------------- tag1 | linux tag2 | Alpine tag3 | Nginx url_page | konfiguracziya_ssl_v_nginx_ content_name | Конфигурация ssl в Nginx

    Как и в простом случае SELECT вернет указанные атрибуты найденных строк, эти атрибуты с помощью php html java script генерируют ссылки на страницы где есть искомый текст, при переходе по ссылке, генерируется соответствующая страница


    Источники
    Последнее изменение: 04.11.2024 18:31


    Здесь пока нет комментариев
    Добавлять комментарии могут только авторизованные пользователи

    Авторизоваться
    Я буду рекламой
    Я тоже буду рекламой
    И я
    ВВЕРХ