ワイルドカードを使用して部分一致に対応できる Postgresql を使用して全文クエリを実行しようとしています。
検索語の後に後置ワイルドカードを使用するのは簡単に思えますが、前置ワイルドカードを指定する方法がわかりません。
たとえば、次のようなものを使用して、後置検索を簡単に実行できます。
SELECT "t1".*
FROM "t1"
WHERE (to_tsvector('simple', "t1"."city") @@ to_tsquery('simple', 'don:*') )
「ロンドン」に一致する結果を返す必要があります
ただし、次のような前方一致検索はできないようです...
SELECT "t1".*
FROM "t1"
WHERE (to_tsvector('simple', "t1"."city") @@ to_tsquery('simple', ':*don') )
理想的には、検索語の前後にワイルドカードを付けたいと思います...
SELECT "t1".*
FROM "t1"
WHERE (to_tsvector('simple', "t1"."city") @@ to_tsquery('simple', ':*don:*') )
LIKE 条件を使用できますが、Postgres の全文検索機能のパフォーマンスを活用したいと考えていました。