読み取り クエリ
Posgresでは、フルテキストインデックス作成により、ドキュメントを前処理し、後で迅速に検索できるようにインデックスを保存できます。前処理には以下が含まれます。
ドキュメントをトークンに解析します。
トークンを語彙素に変換します。
検索用に最適化された前処理済みドキュメントの保存。
tsvector
タイプは全文検索のためにPostgresで使用されます
tsvector
タイプは、以下の点でtext
タイプと異なります。
ケースを排除します。大文字/小文字は同じです
ストップワード(および、または、ではなく、彼女、彼、および他の数百人)を削除します-これらの単語はテキスト検索に関連しないためです
同義語を置き換え、Wordの語幹を取ります(elephant
-> eleph
)。フルテキストカタログでは、Word elephant
ではなく、Word elep
があります。
GistとGINを使用してインデックスを作成できます(および作成する必要があります)
重みとts_rank
を使用したカスタムランキング
Postgresで全文検索よりも弾性検索(検索エンジン)がどのように利点がありますか?
全文検索とelasticsearchは両方とも同じ基本技術に基づいて構築されています逆インデックスなので、パフォーマンスはほぼ同じになります。
FTSはより簡単に展開できます。
ESにはluceneが付属していますが、
fTSでルセンを使用する場合は、追加の作業が必要になります。