OSS探訪GitHubでログイン

PostgreSQLのfull text search・trigram・rankをActiveRecord scopeとしてRails modelへ組み込む

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
1,588
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/09/21
ページ内ナビ

概要

pg_searchはPostgreSQLの検索機能をActiveRecord named scopeとして利用するRuby libraryです。tsearch full-text、trigram、dmetaphone、rank/highlight、association検索に加え、複数modelを横断するmultisearch indexを提供します。現在のversionは2.4.0です。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

model単位のsearch scopeへtsearch・trigram・rankを組み込む

pg_search_scopeで複数columnやassociationを検索し、PostgreSQLのfull-text search、trigram similarity、prefix、dictionary、weight、rank、highlight等を組み合わせられます。

出典:[2]

multisearchで複数ActiveRecord modelを一つのglobal searchへまとめる

multisearchableを設定するとpg_search_documentsへsearch documentを持ち、異なるmodel typeを横断したglobal searchを構築できます。必要に応じてrebuildも可能です。

出典:[2]

向いている用途

外部search engineを導入せずPostgreSQL内でapplication searchを始めたい場合に向く

管理画面検索、autocomplete、small-to-medium規模のsite search等で、既存PostgreSQLのindexとActiveRecord relationを活かしたいRails applicationに適します。

出典:[2]

導入前の確認

2.4.0はRuby 3.3+・ActiveRecord 8.0+。index設計とrebuild整合性が必要

2.4.0はRuby 3.3以上、ActiveRecord/ActiveSupport 8.0以上、PostgreSQL 9.2以上を要求します。trigramやunaccent等はextensionが必要な場合があります。multisearchはcallbackを通らない更新でindexがずれるため、rebuild手順や適切なGIN/GiST indexを運用設計に含めてください。

出典:[2][3][4]

参考にした公式資料

  1. [1]Casecommons/pg_search — GitHub repository(2026-10-06)
  2. [2]pg_search — README(2026-10-06)
  3. [3]pg_search — gemspec(2026-10-06)
  4. [4]pg_search — CHANGELOG(2026-10-06)
編集部からの補足

外部search engineなしで始めやすい一方、性能はPostgreSQL index設計に依存します。multisearchのrebuildとcallbackを迂回する更新の扱いも運用手順に含めてください。

3ステップで試す

  1. 1

    ソースを取得

    git clone --depth 1 https://github.com/Casecommons/pg_search.git
  2. 2

    リポジトリへ移動

    cd pg_search
  3. 3

    公式手順を確認

    READMEのInstallation / Quick Start / Getting Startedにある公式コマンドを続けて実行してください。

    find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
公式READMEで確認

成長

成長の推移 · 直近30日

1,588 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
16
Open PR
31

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • pg-search
  • ruby
  • tsearch
  • trigrams
  • search
  • postgresql
  • activerecord
  • metaphone
  • multi-search
Stars
1,588
Forks
380
Watchers
6
Open Issues
126
Contributors
72
所有者種別
Organization
主要言語
Ruby
ライセンス
MIT
リポジトリ最終更新
2026/09/21

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?