Go製の軽量な単一バイナリ型全文検索エンジン。アプリケーション検索向けに、Elasticsearchのシンプルな代替として提供されています。
ankane/searchkick
ElasticsearchまたはOpenSearchを使って、Active RecordやMongoidのモデルに高機能な全文検索を追加するRuby on Rails向けライブラリ。
- スター
- 6,720
- フォーク
- 761
- 未解決の Issue
- 10
- 最終コミット
- 10 日前
これは何?
Searchkickは、Active RecordやMongoidのモデルをElasticsearchまたはOpenSearchに接続するRuby gemです。モデルに1行宣言するだけで、全文検索を追加できます。語幹処理、特殊文字や余分な空白への対応、スペルミスの許容、カスタム同義語を備えており、「tomatoes」の検索で「tomato」が、「zuchini」の検索で「zucchini」が見つかります。
クエリには、whereによるフィルタリング、並べ替え、ページネーション、ブースト、集計、ハイライト、オートコンプリート、サジェスト、地理空間検索に対応した、メソッドチェーン形式のSQL風インターフェースを使えます。インデックス作成は同期、非同期、Redisベースのキュー経由、または手動で実行でき、並列で再インデックスしてダウンタイムを回避できます。
SearchkickはElasticsearch 8と9、OpenSearch 2と3に対応しています。ユーザーごとに検索をパーソナライズでき、Searchjoyのコンバージョンデータを使って調整できます。
主な機能
- 01語幹処理、スペルミスへの対応、カスタム同義語を標準でサポート
- 02where、order、limit、offsetを使ったSQL風のメソッドチェーン形式のクエリ
- 03オートコンプリート、「もしかして」サジェスト、ハイライト
- 04集計、フィールド・新しさ・距離に基づくブースト、ユーザーごとの検索結果
- 05地理空間検索と地理形状検索
- 06非同期、キュー経由、並列処理によるダウンタイムなしの再インデックス
ユースケース
- RailsのECサイトやカタログアプリに、商品やコンテンツの検索機能を追加する
- Active RecordまたはMongoidの大規模なモデル向けにオートコンプリートを構築する
- 検索結果に集計を使ったファセットフィルタリングを提供する
- レストランや店舗向けの位置情報ベースの検索を実装する
クイックスタート
- 1
HomebrewでOpenSearchをインストールして起動する
brew install opensearch && brew services start opensearch - 2
GemfileにsearchkickとElasticsearchまたはOpenSearchのクライアントを追加する
gem "searchkick" - 3
モデルにsearchkickを追加し、そのデータをインデックスする
Product.reindex
使う前に知っておきたいこと
- ElasticsearchまたはOpenSearchサーバーが起動している必要があります。
- Elasticsearch 7とOpenSearch 1では、旧バージョンの5.5.2が必要です。
トピック
よくある質問
- searchkick とは?
- ElasticsearchまたはOpenSearchを使って、Active RecordやMongoidのモデルに高機能な全文検索を追加するRuby on Rails向けライブラリ。 Searchkickは、Active RecordやMongoidのモデルをElasticsearchまたはOpenSearchに接続するRuby gemです。モデルに1行宣言するだけで、全文検索を追加できます。語幹処理、特殊文字や余分な空白への対応、スペルミスの許容、カスタム同義語を備えており、「tomatoes」の検索で「tomato」が、「zuchini」の検索で「zucchini」が見つかります。
- searchkick は無料で使えますか?ライセンスは?
- searchkick は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- searchkick は今もメンテナンスされていますか?
- 活発にメンテナンス中。searchkick の最終コミットは 2026年10月27日 です。
- searchkick は何に使えますか?
- RailsのECサイトやカタログアプリに、商品やコンテンツの検索機能を追加する Active RecordまたはMongoidの大規模なモデル向けにオートコンプリートを構築する 検索結果に集計を使ったファセットフィルタリングを提供する レストランや店舗向けの位置情報ベースの検索を実装する
- searchkick のインストール方法は?
- HomebrewでOpenSearchをインストールして起動する: brew install opensearch && brew services start opensearch GemfileにsearchkickとElasticsearchまたはOpenSearchのクライアントを追加する: gem "searchkick" モデルにsearchkickを追加し、そのデータをインデックスする: Product.reindex
- searchkick はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/ankane/searchkick
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
OpenSearchを基盤とし、Web、ファイル、データストアをクロールするセルフホスト型のエンタープライズ・サイト検索サーバー。
オンラインストアを自分で構築し、完全に管理したい開発者向けの、Ruby on Rails製オープンソースeコマースフレームワーク。
ElasticsearchとOpenSearchのインデックス、マッピング、エイリアス、テンプレートを、ファイルやS3、ほかのクラスタとの間でインポート・エクスポートするCLIツールです。
Rails、Sinatraなどの各種フレームワークで、OFFSET、KEYSET、検索、カレンダー方式のページネーションに対応する、プレーンなRuby向けの汎用ライブラリ。
セルフホスト型のGitLab Community Edition。Gitリポジトリ、コードレビュー、CI/CD、課題管理を行うRuby on Rails製Webアプリケーション。