Всем привет. Реализую 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