Как правильно использовать pg_trgm совместно с FTS Pgsql + Laravel?

Всем привет. Реализую FTS с помощью Pgsql. Проект пишу на Larvel.
Собственно сам поиск я реализовал с помощью добавления колонки к таблице и присваивания индекса (GIN).
Затем после scout:import таблица заполнилась индексами. Поиск по ним выполняется великолепно, но я не могу разобраться как выполнить поиск по подстроке. Вычитал, что для этого используют pg_trgm, только как правильно его прикрутить?
Допустим есть таблица
Schema::create('region', function (Blueprint $table) {
            $table->integer('id', true);
            $table->string('label_region', 40);
        });


        DB::statement('CREATE EXTENSION IF NOT EXISTS pg_trgm');
        DB::statement('ALTER TABLE "region" ADD searchable tsvector NULL');
        DB::statement('CREATE INDEX "region_searchable_index" ON "region" USING GIN (searchable)');
        DB::statement('CREATE INDEX label_region_trgm_index ON region USING gin(label_region gin_trgm_ops);');

И как дальше писать запрос, чтобы подстрока еще работала? До этого искал через ::search
  • Вопрос задан
  • 340 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы