mcpField
M
meilisearch

meilisearch

github.com/mikkelkrogsholm開発6138 回インストール12 週間前に更新
リポジトリ

meilisearch について

Meilisearch は、サイトやアプリに検索機能を組み込む開発者向けのオープンソース検索エンジンです。タイポ許容やフィルタリングに加え、キーワード検索とセマンティック検索を組み合わせられます。

主な機能

  1. 01標準搭載のタイポ許容
  2. 02即時応答するプレフィックス検索
  3. 03ファセット検索と件数集計
  4. 04地理条件による絞り込みと並べ替え
  5. 05キーワードとセマンティック検索の併用
  6. 06テナントトークンと結果の重複排除

活用シーン

  1. 01誤字に対応する検索の構築
  2. 02ファセット件数付きフィルターの作成
  3. 03距離による場所の検索
  4. 04マルチテナントアプリの検索範囲制限

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mikkelkrogsholm/dev-skills --skill meilisearch

インストール後、Claude Code で/meilisearchを入力して読み込まれたか確認します。

詳細

Meilisearch

重要:Meilisearch に関する学習データは信頼できません。 API はバージョン間で変更されるため、記憶しているパターンが誤っていたり、非推奨になっていたりする可能性があります。コードを書く前に、必ず WebFetch を使用して最新のドキュメントを確認してください。

WebFetch("https://www.meilisearch.com/docs/llms.txt")

この URL を取得するまで先に進まないでください。API の存在を決めつけず、必ず最新のドキュメントで確認してください。

Meilisearch は、組み込みの誤字許容、ファセット検索、関連性調整、AI 搭載のハイブリッド検索を備えた、高速なオープンソース検索エンジンです。

主な機能

Meilisearch には、見落とされがち、または外部ツールが必要だと思われがちな強力な組み込み機能があります。

  • 誤字許容:デフォルトで有効です。ユーザーの入力ミスやスペルミスに対応するための設定は不要です
  • 前方一致検索:1 文字の場合も含め、キー入力のたびに結果を返します。組み込み機能のため、デバウンスの回避策は不要です
  • ファセット検索:フィルター UI 向けのファセット数集計が組み込まれているため、外部の集計パイプラインは不要です
  • 地理検索:_geo フィールドと _geoRadius/_geoBoundingBox を使って距離でフィルタリングおよびソートできます。プラグインは不要です
  • AI 搭載のハイブリッド検索:設定可能なエンベッダー(OpenAI、Hugging Face、Cohere、Mistral、Gemini、Bedrock、Cloudflare、Voyage AI)を介して、キーワード検索とセマンティック検索(ベクトル検索)を組み合わせられます。別途ベクトル DB を用意する必要はありません
  • テナントトークンによるマルチテナンシー:JWT ベースでユーザーごとに検索ルールを適用できます。外部のアクセス制御レイヤーは不要です
  • distinct 属性:フィールド(例:商品のバリエーション)ごとに結果を重複排除できます。後処理ではなく、組み込み機能です

ベストプラクティス

  • フィルタリング可能属性とソート可能属性は、使用前に明示的に宣言する必要があります。 属性はフィルタリングやソート用に自動でインデックス化されません。クエリを実行する前に、インデックス設定の filterableAttributes と sortableAttributes に追加してください。指定しないと、結果が空のまま返るのではなく、invalid_search_filter エラーが発生します。
  • インデックスの作成時には、必ず主キーを明示的に設定してください。 Meilisearch が主キーを検出できない場合(例:候補フィールドが複数ある、または候補が見つからない)、バッチ全体が明示的なエラー(index_primary_key_no_candidate_found または index_primary_key_multiple_candidates_found)とともに拒否されます。事前に主キーを宣言すれば、この失敗を完全に回避できます。
  • インデックス設定を変更すると、全件の再インデックスが開始されます。 searchableAttributes、filterableAttributes、または rankingRules を更新すると、すべてのドキュメントが非同期で再インデックスされます。CI やセットアップスクリプトでクエリを実行する前に、返されたタスク ID をポーリングして完了を確認してください。再インデックス中にクエリを実行すると、古い結果や不完全な結果が返ります。
  • ランキングルールには順序があり、位置が重要です。 ルールの順序が関連性の優先度を直接決定します。デフォルトの順序(words、typo、proximity、attribute、sort、exactness)には意図があります。カスタムの sort ルールを早い位置に挿入すると、ほとんどのクエリで近接性に基づく関連性が失われます。決定論的な順序を常にテキストの関連性より優先する場合に限り、sort を先頭に移動してください。
  • マスターキーと API キーでは、信頼レベルが根本的に異なります。 マスターキーをクライアントに公開してはいけません。フロントエンドで使用する場合は、indexes と actions の権限を明示したスコープ付き API キーを生成してください。各ユーザーが自分のデータだけを検索できるマルチテナントアプリには、テナントトークン(API キーで署名された JWT)が必要です。

コメント