typesense - オープンソース検索エンジン
(typesense.org)- 非常に高速で、検索語に関連する結果を見つけてくれる
→ Typo Tolerance(タイプミス許容): ある程度は自動でタイプミスを認識して処理
-
検索順位を手軽に調整可能
-
検索時に特定フィールドごとの並び替えをサポート
-
Facet & Filter ナビゲーションをサポート: 検索結果を特定フィールド単位でまとめて表示し、フィルタリング可能
-
特定の結果にアクセスするための API Key のスコープ制限が可能
-
Raft ベースのクラスタリング
-
Linux/Mac バイナリおよび Docker イメージを提供
-
C で書かれたオープンソース
FAQより
- ElasticSearch とは何が違うのですか?
→ ES は導入と運用が複雑だが、TypeSense は "Time-to-Market" のために作られており、すばやく導入でき、もちろんスケーリングも可能
- Algolia とは何が違うのですか?
→ Algolia はかなり優れた検索エンジン SaaS だが高価。TypeSense はセルフホスティングも可能で、SaaS 版も安価(保存レコード数や検索回数ごとの課金ではなく、利用時間と帯域幅に応じて課金)
→ 機能面では TypeSense は ElasticSearch より Algolia に近い
- 速度は速いが、メモリフットプリントは?
→ 基本的に TypeSense サーバーは 30MB 程度のメモリを使用し、データのインデックスを開始すると増えるが、非常に簡潔なデータ構造を維持している
→ Hacker News の投稿タイトル 100万件は JSON で 88MB だが、これを Typesense がインデックスしてメモリに載せると 165MB 程度を使用
2件のコメント
サービス内で検索エンジンを自前で作るとなると、設定から運用管理までやや複雑になりがちですが、それを素早く実現できるオープンソースです。
ただし日本語のような言語では形態素解析など考慮すべき点はあるでしょうが、これは文字単位で高速に検索して結果を表示するため、検討する価値はありそうです。
このTypeSenseを活用してデモとして作られたサイトがあるので、あわせて見るとよいと思います。