web-dev-qa-db-ja.com

全文検索(Postgres)対Elastic検索

読み取り クエリ

Posgresでは、フルテキストインデックス作成により、ドキュメントを前処理し、後で迅速に検索できるようにインデックスを保存できます。前処理には以下が含まれます。

  • ドキュメントをトークンに解析します。

  • トークンを語彙素に変換します。

  • 検索用に最適化された前処理済みドキュメントの保存。


tsvectorタイプは全文検索のためにPostgresで使用されます

tsvectorタイプは、以下の点でtextタイプと異なります。

  • ケースを排除します。大文字/小文字は同じです

  • ストップワード(および、または、ではなく、彼女、彼、および他の数百人)を削除します-これらの単語はテキスト検索に関連しないためです

  • 同義語を置き換え、Wordの語幹を取ります(elephant-> eleph)。フルテキストカタログでは、Word elephantではなく、Word elepがあります。

  • GistとGINを使用してインデックスを作成できます(および作成する必要があります)

  • 重みとts_rankを使用したカスタムランキング


Postgresで全文検索よりも弾性検索(検索エンジン)がどのように利点がありますか?

17
overexchange

全文検索とelasticsearchは両方とも同じ基本技術に基づいて構築されています逆インデックスなので、パフォーマンスはほぼ同じになります。

FTSはより簡単に展開できます。

ESにはluceneが付属していますが、

fTSでルセンを使用する場合は、追加の作業が必要になります。

10
Jasen