我正在使用带有 Laravel 5 的 Postgres 9.3,并且我已经设置了以下迁移:
DB::statement("ALTER TABLE users ADD COLUMN searchtext TSVECTOR");
DB::statement("UPDATE users SET searchtext = to_tsvector('english', first_name || ' ' || last_name || ' ' || email)");
DB::statement("CREATE INDEX searchtext_gin ON users USING GIN(searchtext)");
DB::statement("CREATE TRIGGER ts_searchtext BEFORE INSERT OR UPDATE ON users FOR EACH ROW EXECUTE PROCEDURE tsvector_update_trigger('searchtext', 'pg_catalog.english', 'first_name', 'last_name', 'email')");
如果我有一个名字为“Christopher”的条目,并且我运行以下查询,我不会得到任何结果
return User::whereRaw("searchtext @@ to_tsquery('Chris')")->get();
如果我搜索“Christopher”,我会得到记录。我需要做什么才能使用部分匹配进行搜索?