Omeka-SのMroongaSearchモジュールで日本語全文検索を実現する
はじめに Omeka-Sは強力なデジタルアーカイブシステムですが、デフォルトでは日本語の全文検索がほとんど機能しません 。本記事では、MroongaSearchモジュールを導入することで、日本語全文検索を実現する方法を解説します。 重要:なぜMroongaSearchモジュールが必要なのか Omeka-Sの標準検索の問題点 Omeka-Sの標準フルテキスト検索(FullTextSearchモジュール)は、InnoDBエンジンを使用しており、以下の致命的な問題があります: 日本語単語検索の例 : データ: 「東京大学で人工知能を研究する」 検索語: 「人工知能」 結果: ❌ ヒットしない InnoDBのフルテキスト検索は英語のようなスペース区切り言語を前提としているため、日本語では: 単語検索が不可能 : 文字列全体が1つの単語として扱われる 部分一致も機能しない : FULLTEXTインデックスが日本語を正しく処理できない 検索結果がゼロ : ユーザーは何も見つけられない MroongaSearchモジュールの解決策 MroongaSearchモジュール は、この問題を2段階で解決します: 1. フォールバック機能(モジュール導入直後から有効) 重要 : MroongaSearchモジュールをインストールするだけで、特別な設定なし で日本語検索が動作するようになります。 データ: 「東京大学で人工知能を研究する」 検索語: 「人工知能」 【MroongaSearchモジュールなし】 → ❌ 結果ゼロ 【MroongaSearchモジュールあり(Mroonga未設定でも)】 → ✅ LIKE '%人工知能%' にフォールバック → ✅ 検索結果が返る! MroongaSearchモジュールのフォールバック機能 : CJK(日本語・中国語・韓国語)の単一語検索を自動検出 LIKE '%term%' 検索に自動的にフォールバック Mroongaが設定されていなくても動作する これがないと、日本語全文検索がそもそもうまくいかない 2. Mroonga+TokenMecabによる高速・高精度検索(推奨) さらに、MariaDBにMroongaプラグインを設定すると: ✅ 形態素解析による精密な単語検索 ✅ 高速な全文検索(LIKEの数百倍高速) ✅ AND/OR検索の厳密な制御 MroongaSearchモジュールとは MroongaSearchは、Omeka-S用の全文検索強化モジュールです。 ...
