- PostgreSQL は独自の検索エンジンを構築するための構成要素を提供
- 主要な構成要素は
tsvector および tsquery データ型、一致演算子 @@、一致結果のランキング関数、そして GIN インデックス型
tsvector は正規化された語彙と元のテキスト内での位置を保存
tsquery は正規化されたクエリを表し、論理演算子を使って複数の用語を組み合わせられる
GIN インデックス型は tsvector を効率的にクエリするために使われる
ts_rank と ts_rank_cd は、用語頻度と近接性を考慮するランキング関数
- 関連性の調整によって、特定の基準に応じて検索結果をカスタマイズできる
- 数値、日付、正確な値のブースターをランキングスコアに追加できる
- 列に重みを割り当てることで、検索結果で特定の用語を優先できる
- タイトル列に
setweight を使うと、jedi という単語を含む映画タイトルの順位が向上する
- PostgreSQL は直接的にはあいまい検索やタイプミス許容をサポートしていないが、類似性や Levenshtein 距離を用いて実装できる
- ユーザーが検索範囲を絞り込むのに役立つファセット検索は、カテゴリー定義またはアルゴリズムを用いて PostgreSQL で実装できる
- この記事は、Elasticsearch との詳細な比較を第2部で扱うと述べて締めくくられている
1件のコメント
Hacker Newsの意見