PremiumSearch
※Movable Type クラウド版ではご利用できません。
プラグインの特徴
- 検索エンジン「Elasticsearch」を利用しHTML、PDFやオフィス系ドキュメントの検索を実現する事ができます。
- Elasticsearchを利用したインデックス型全文検索が可能です。
- PDFやOfficeドキュメントの検索が可能です。
- DocumentType毎の絞り込みやディレクトリ単位での絞り込みが可能です。
- DataAPIを用いているため、開発者による柔軟なカスタマイズが可能です。
プラグインの設定
事前に確認
- プラグインが有効になっている必要があります。
- DataAPIが利用出来る必要があります。
- Elasticsearchサーバーの設定が別途必要となります。
事前に確認【サーバー要件】
Elasticsearchサーバー
- ElasticSearch 6.3以上
- Amazon Elasticsearch Service を推奨
CMS(ステージング)サーバー
- Linux、Solaris / Unix、BSD、Mac OS X を推奨
- Perl 5.16.x 以上
事前に確認【ネットワーク要件】
- CMSサーバーから検索サーバーへのHTTP接続許可が必要となります。
- CMSサーバーと公開サーバーが分離している場合には、CMSサーバーから公開サーバーへのHTTP接続許可が必要となります。
- エンドユーザーからCMSサーバーのDataAPIへの接続許可が必要となります。

使用方法【初期設定 プラグインの設定】
プラグイン設定はサイト、子サイト単位で可能です。
- サイトダッシュボードのメニューから、[設定]>[プラグイン]をクリック。
- プラグインの管理画面に遷移します。
- 一覧の[PremiumSearch]をクリック。
- [設定]タブをクリック。
- プラグインの設定画面が表示されます。

プラグイン設定項目一覧
| 必須 | フィールド名 | 内容 |
|---|---|---|
| ◯ | ElasticSearch Server ベースURL |
ElasticSearch サーバーのベースURLを設定してください。 例:http://elasticsearch:920 |
| ◯ | ElasticSearch インデックス名 |
ElasticSearch のインデックス名を指定します。 例:my_site
インデックスの命名規則について詳しくは下記のページを参照してください |
| ◯ | 対象URLプレフィックス |
クローラーがクロールするURLを指定します。 例:https://movabletype-premium.com |
| ◯ | URL |
クローラーがクロールを開始するURLを指定します。 例:https://movabletype-premium.com/index.html |
| URL除外パターン |
クロールの対象から除外するURLのパターンを指定してください。改行区切りで複数指定できます。 必要があれば、パターンにはワイルドカードとして * (アスタリスク) を使用できます。 例:news/2019/*/01 |
|
| インデックス除外CSSセレクター |
検索インデックス作成の対象となるコンテンツから除外するためのセレクターをカンマ区切りで指定します。 通常、<header>や<footer>などのセクションはそのページの本質的なコンテンツではなくサイト共通のパーツです。この値を設定することにより検索結果の精度向上が期待できます。 例:header,footer,nav |
|
| フォルダ定義 |
フォルダ定義をすることで検索結果画面上にて指定フォルダによる絞り込み検索が可能になります。 フォルダ定義はJSONの配列である必要があります。 例: |
|
| ◯ | クロックスピード |
クローラーのクロックスピードを秒で指定してください。1.5を指定すると、クローラーのサイトへのアクセスは1.5秒間に最大で1回となります。 サーバー負荷を見てご調整頂くか、クローラー実行を夜間や朝方等のアクセスが少ない時間に実施ください。 初期値:1.5 |
| ◯ | 同時接続数 |
クローラーの同時接続数を指定してください。 1を指定すると、クローラーの同時アクセスは最大で1に制限されます。 変更する場合はサーバー負荷に注意してください。 初期値:1 |
| ◯ | キュー容量 |
First-In-First-Out(先入れ先出し)のクローラーキューのキャパシティをURLの個数で設定します。これはメモリー不足を防止します。この数値は結果のインデックスの容量ではなく、クロール中の一時的なキューの容量であることに注意してください。 クローラーログの「peak」の値がキュー容量に達するとクロール漏れが起こる可能性がありますので、peakの実績値を参考にこれより少し大きい数値になるように調整してください。 初期値:10000 |
| ◯ | デフォルトの検索結果件数 |
検索結果の1ページに表示する件数のデフォルト値を設定してください。 ユーザはURLの「s」パラメータを指定することで「最大の検索結果件数」を上限としてサイズを変更できることに留意してください。 パラメータについては後述のAPIリファレンスを参照ください。 初期値:10 |
| ◯ | 最大の検索結果件数 |
検索結果の1ページに表示する件数の最大値を設定してください。この値を増やす場合はサーバー負荷に注意してください。 初期値:20 |
使用方法【初期設定クローラーの定期実行】
初期設定1で設定したクローラーを定期実行することで最新情報が検索結果に反映されます。
クローラーは下記のスクリプトを実行することで動作させます。cron などで定期実行を設定してください。
※--blog 1はサイトのIDをご指定ください
例:./plugins/PremiumSearch/tools/crawl.pl --blogcode>
クローラーの深度を指定することもできます。
もし開始URLにトップページを設定しているなら、次のような2つの定期タスクをスケジュールすると良いかもしれません。
- depth指定のない日時実行
- depth=1の毎時実行
例:
0 3 * * * ./plugins/PremiumSearch/tools/crawl.pl --blog 1
0 * * * * ./plugins/PremiumSearch/tools/crawl.pl --blog 1 --dep
depth=-1 は制限なし(デフォルト)、 depth=0 は開始URLのみ、 depth=1 は開始URLとそのリンク先を意味します。
クローラーログ
クローラーの実行ログを確認することが可能です。
実行ログはサイトメニューの[ツール] > [プレミアムサーチ]より確認可能です。
インデックス(検索エンジンに記録されたWebサイト情報)の削除についてはクロール開始時刻より古いインデックスを全て削除しております。
検索結果画面の実装
リンク先のAPIリファレンス、HTMLを参考に実装してください。
https://github.com/skyarc2/mt-premium/issues/2
注意事項
- 動作検証はAmazon Elasticsearch Serviceで行っております。
- Elasticsearch及びAmazon Elasticsearch Serviceに関してはサポート対象外となります。
- Windowsサーバーでの動作検証は現状未実施となりサポート対象外となります。
- 設定完了後のサーバー重複(本番環境を複製し検証環境を作成など)はご注意ください。検索インデックスに影響が出る場合がございますので、サーバーを複製する場合はクローラーの停止など対応をおこなってください。