≪≪この記事をすべて読むには約 6 分かかります≫≫
WordPressにElasticSearchを用いたサイト内検索を設置したくなったので、プラグインとして「Elastic Press」を設置し、サーチエンジンにSearchlyの無料プランStarterを使って試してみましたが、うまく行きませんでした。
うまく行かない、で終わりだと悲しいので、代わりにJoomlaのElasticSearch検索プラグインを設置してみたところインデックスと単純な検索なら簡単にうまく行きました。
WordPress + Elastic Pressでは動かず
別の記事に書いた通りWordPress + Elastic Pressの組み合わせでは動作しませんでした。エラーの原因はわかりませんでしたが、サーバー側のPHP/MariaDB環境が良くないのか、Searchlyとサーバーの相性が悪いのか、Elastic Pressの何かが良くないのか、新規インストールしたWordPressでもやってみましたが、動作の途中でエラーになるのは変わりませんでした。
いずれにしても当初Elastic Pressを入れたかったサイトの規模だと、Searchly Starterプランのデータ容量20MBでは足りませんが、Elastic Searchの契約をしたのに動かないでは困ります。
Joomla + GeekElasticSearchでは動作
Joomla 4.x用に現存しているElasticSearch拡張機能は一つしか見つけられず、ちょっと躊躇う89.9USDでしたがGeekElasticSearchを購入してみました。
とりあえずインストールしたらすぐに動作しました。
サンプルデータの12記事だけですが、データ容量は65kb必要でした。サンプル記事だけですが、バックアップのSQLファイルサイズは1MBあったので、記事の容量はよくわかりません。
設定項目が多すぎて、Elastic Pressで期待した動作と同じように日本語対応サーチをしたい、などに対応できるまでにどれくらい設定がいるのかわかりませんので、実際に使うかどうかはわかりません。ただ、環境のせいではないことがわかりました。
Joomlaの標準検索機能Smart Search
Joomlaに標準で搭載されている検索機能Smart Searchは、WordPressより強力です。基本的には外部検索機能は必要なく、プラグインで拡張可能です。
WordPressと同じタイプのレガシー検索もJoomla 3.xまでは同梱されていました。現在のJoomla 4.xではJoomla 3.xから移行した場合には、レガシー検索が有効でしたが、次世代のJoomla 5.xはSmart Searchのみに一本化する予定です。
大規模サイトだとSmart Searchのインデックスでデータベースが膨れ上がったりインデックスにCPUとメモリリソースが食われて動作に影響が出たりするようです。(公式サイトのSmartSearchドキュメント)
StackExchangeにSmart Searchのインデックスが増えそうで困っているという相談がありました。Joomla 5.xになるとデータベース容量が2GBになってしまうという話でした。
そのような場合には、Joomla外にElasticSearchサーバーをたてるか、外部サービスを利用するしかないようです。
高機能検索
また、WordPressで実現したかったような曖昧検索機能は、ElasticSearchやSolr、Algolia、OpenSearchのような高機能な外部検索エンジンでないと難しそうです。
先ほどのStackExchangeの投稿に対して、新しいSempriaという検索エンジン作っているよ、という回答がありました。JoomlaのSmartSearchをオフにして使うようですが、「seltene Erden in Japan」(日本の希土類?)が記事のインデックスから連想されて、「南鳥島のイッテルビウム」(元素記号70、南鳥島付近にレアアースとしてあるらしい)の記事にヒットするという例がサイトに出ていました。このレベルの検索エンジンが使えたら、最高だと思います。日本語にいつか対応してくれないかなとは思いますが、今のところドイツ語だけっぽいです。
結論:WordPressのElasticPressがエラーを起こしている
今回、ElasticPressの拡張機能がどうも相性が悪かったらしいということがわかりました。当サイトをSearchlyの無料プランで賄えるほどではないものの、Joomlaでは動作したのでサーバー側には問題ないようです。
WordPressにはJetPack一択?
WordPressのプラグインライブラリーには出てきませんでしたが、ElasticSearch.ioの公式サイトで提供されているサービスなら動くと思います。月額79USDで1サイト1GB、月に10万クエリ、2万件までで、それ以上だと299米ドルか699米ドルと超巨大サイトでないと厳しい価格になってきます。1063円でオプションが設定されていたJetPackが良さそうです。
プラグインページを見ると、ホームページには記載されていなかった無料プランが選べると記載がありました。5000件までのインデックスで月に500クエリまでは無料で使えるようです。JetPackサブスクリプション(無料のものでも良い)をすれば使えるようです。登録するのが面倒で使っていなかったのですが、使ってみても良いかなと思います。
コメント