このページにある:
- 必要なプラグインとセットアップ
- ElasticsearchとElasticPressの紹介
- WPML ElasticPressの仕組み
- WPML ElasticPressでコンテンツを同期しインデックス化する
- 既知の問題
- サポートを受ける
必要なプラグインとセットアップ
以下をインストールし、有効化することから始める:
- ElasticPressプラグイン
- WPMLコアプラグインとWPML文字列翻訳アドオン
- WPML ElasticPressグループラグイン
WPMLを初めてお使いになる方は、入門ガイドをご覧いただきたい。
ElasticsearchとElasticPressの紹介
Elasticsearchは、検索可能なコンテンツを管理するための高速で正確な方法を提供する。 このオープンソースのツールは、コンテンツにインデックスを付けて分類し、テキスト文書や数値データ、地理空間データなど、さまざまなタイプのコンテンツを分析することができる。
ElasticPressは、WordPressウェブサイトをElasticsearchと統合し、WordPressのデフォルトの検索、クエリ、コンテンツ関連機能をアップグレードする。
WooCommerceストアやコミュニティウェブサイトなど、情報量の多いサイトをお持ちの場合、ElasticPressを利用することができる:
- WordPressのデータベースに負担をかけずに、ほぼ瞬時に検索結果が得られる検索を作成する
- 全文検索やあいまい検索を含む複雑なクエリを処理する。
- コンテンツにウェイトを追加し、クエリされた検索結果の焦点が好みのデータに合うようにする。
- 大量のデータを分析し、サイト上での顧客の行動や傾向を把握する。
ElasticPressプラグインをインストールし、Elasticsearchサーバーに接続すると、プラグインはウェブサイトのデータのインデックス作成を開始する。 つまり、ウェブサイトのすべてのコンテンツ(投稿、ページ、商品など)を、Elasticsearchが素早く処理できる形式に整理するのだ。
ElasticPressは、 ElasticPress → 特長からアクセスできる機能にバンドルされている。
ElasticPressとコンテンツを同期させる
ElasticPressは、コンテンツを作成、更新、削除すると自動的に同期し、検索インデックスを常に最新の状態に保つ。
ElasticPress → Syncでは、2つのインデックス・モードを特長とするSync Settingsにもアクセスできる。 これらのサイトでは、WordPressウェブサイトの現在のコンテンツをElasticsearchにインデックスしたり、Elasticsearchインデックスの既存のデータを削除して、WordPressサイトの現在のコンテンツでゼロから新しいインデックスを作成したりすることができる。
WPML ElasticPressの仕組み
WPML ElasticPressは、WPMLとElasticPressを搭載したWordPressサイトの多言語検索機能を可能にする。 コンテンツを原語で分析し、正確なインデックスを作成し、関連するコンテンツをユーザーが選択した言語で表示する。
WPML ElasticPressは、独自の言語別インデックスを生成することでこれを実現している:
- 関連文書:各インデックスには、翻訳可能として設定されたすべての投稿タイプの特定言語への翻訳が含まれています。 翻訳があれば表示する、またはデフォルト言語にフォールバックするように設定された投稿タイプでは、インデックスにはその言語の翻訳とデフォルト言語の投稿が含まれます。 翻訳可能でない投稿については、各言語インデックスにすべての項目のコピーが含まれる。
- 言語固有のドキュメント分析:言語インデックス内のすべてのドキュメントは、ツール、ストップワード、ステミングを使用して、その言語の分析と同期化を受ける。 これには、デフォルト言語での投稿のコピーも含まれる。
- 検索結果のプール:各言語インデックスは、フロントエンドの検索リクエストや関連投稿リストなどのための潜在的な検索結果のプールを提供する。
ElasticPressの特長
現在、WPML ElasticPressは以下のElasticPressの特長をサポートしている:
- フロントエンド検索用の投稿検索
- 関連投稿は、ElasticPressが提供するウィジェットを使用する。
- バックエンド検索用の用語、コメント、ユーザー
WPML ElasticPressを使い始める
WPML ElasticPressは各言語ごとにインデックスを生成するため、WPML ElasticPressをインストールした後、および/またはWPML ElasticPressのバージョン1.0から2.0にアップデートした後は、投稿のインデックスを再作成することをお勧めする。
サイトの規模が大きい場合、この処理に数時間かかることがある。
WordPressの管理画面から、または以下のコマンドを使って行うことができる:
wp wpml_elasticpress sync --setup --post-type=post
WPML ElasticPressでコンテンツを同期しインデックス化する
WPML ElasticPressは、ElasticPress → Syncの Syncダッシュボードに直接統合される。プラグインは単一の同期プロセスを実行する代わりに、多言語サイトの各言語ごとに複数の同期をトリガーする。
投稿を作成、修正、削除するたびに、WPML ElasticPressは自動的に関連するコンテンツを同期しておく。 変更されたコンテンツの言語や投稿タイプの翻訳設定に基づいて、関連するインデックスを更新する。
WP-CLIでインデックスを作成する
インデックスすべきコンテンツがたくさんある大規模な多言語ウェブサイトをお持ちの場合は、コマンドラインによるインデックス作成を好まれるかもしれない。 WPML ElasticPressには独自のCLIコマンド、wp wpml_elasticpress
があり、既存のwp elasticpressコマンドを拡張する。 --post-lang
、同期する言語を指定するオプションが追加された。 カンマで区切って複数の言語を列挙することができる。 例えば、wp wpml_elasticpress sync –post-lang=en,es
、英語とスペイン語のコンテンツだけが同期される。
便利なコマンドには次のようなものがある:
wp wpml_elasticpress sync –setup
:既存のインデックスをすべて削除し、すべてのコンテンツのインデックスを再作成する。wp wpml_elasticpress sync --per-page=200
:すべてのコンテンツを、ElasticPressで設定されているデフォルトの350アイテム/バッチではなく、200アイテム/バッチで同期する。wp wpml_elasticpress sync –post-type=post –post-lang=en,pt-pt
:特定の言語の投稿のみをインデックスする。 この場合は英語とポルトガル語だ。 このコマンドの詳しい使い方は後述する。
特定の言語からの投稿のみをインデックス化する
WPML ElasticPress glueプラグインは、特定の言語の投稿だけをインデックスすることもできる。 そのためだ:
- 指定した言語(この場合は英語)の投稿をインデックス化し、既存のインデックスをすべて削除するには、
wp wpml_elasticpress sync --setup --post-type=post --post-lang=en
コマンドを使用する。 - 今、サイトのフロントエンドをチェックすると、英語サイトの検索結果には英語の投稿しか表示されない。 言語を切り替えると、検索結果は空になるはずだ。
さらに他の言語のインデックスを作成したい場合は、ステップ2を繰り返す。 そうしないと、すでにインデックス化されている投稿を削除することになる)。
例えば、こんな使い方ができる: wp wpml_elasticpress sync --post-type=post --post-lang=fr
既知の問題
WPMLは、この プラグインと問題なく機能しますが、 現在取り組み中のマイナーな問題があります。 両プラグインとも頻繁にアップデートされるため、これは予想されることです。
現在未解決の問題:
このプラグインのために以前解決された全ての既知の問題も検索できます。
サポートを受ける
ElasticPressを多言語サイトで使用する際にヘルプが必要な場合は、WPMLのサポートフォーラムを参照のこと。