【WordPress】Fantastic Elasticsearchを導入してみた

logo-elastic-1000x343

前回の記事で「Fantastic ElasticSearch」でkuromojiの使用ができないと紹介しましたが、プラグインの修正をしなくても使用できました。

スポンサーリンク

Fantastic ElasticSearch

Elasticsearch1.xの時から開発が続いており、最近も比較的頻繁に更新されているプラグインです。

ElasticsearchサーバーのURLやインデックス名の設定はもちろんですが、

  • タイムアウト時間の設定
  • 投稿タイプの選択
  • カスタムフィールドの選択
  • Non Analyzedの設定
  • スコアリングの設定

などの設定を行うことができます。

またElasticsearchサーバーにデータを投げる際に少しずつ投稿を処理するため、投稿数が多くても問題ありません。

WordPress の検索のパフォーマンスや正確性の改善とファセット検索の有効化に ElasticSearch サーバーを活用する

kuromojiを使用するための設定

テーマのfunctions.phpなどに以下のコードを追加します。

elasticsearch-kuromoji

下で紹介する導入手順で同期するとanalyzerに「kuromoji」が設定されます。

その他のカスタマイズ

で検索するとフィルターできる箇所が見つかります。

第一引数に「elasticsearch_」をつけたものをフックすることで値を変更できます。

例えば一度に投げるデータ数の設定は以下のフィルタが用意されています。

したがって

とすることで100件ずつに変更できます。

導入方法

プラグインのページにて「Fantastic ElasticSearch」で検索し、インストール・有効化を行います。

左メニューの「ElasticSearch」から設定画面に移動します。

WordPress Integration

elasticsearch1

検索でElasticsearchを使用するかどうか、Elasticsearchの集計処理を利用するかなどを設定します。

Server Settings

elasticsearch2

ElasticsearchサーバーのURLやインデックス名などを設定します。

Content Indexing

elasticsearch3

Elasticsearchに投げる投稿タイプやフィールドを設定します。

Field Mapping

elasticsearch4

NumericやNon Analyzedの設定をします。

Result Scoring

elasticsearch5

スコアリングの設定をします。

Manage Index

elasticsearch6

データの削除やデータの同期を行います。

動作確認

通常ヒットしない検索ワードでもヒットするようになります。

良ければ試してみてください。

コメント

  1. 太郎 より:

    このfantastic searchを利用して、SQL文のBETWEENのような保存されている値による絞込みを行うことはできるのでしょうか?

    • technote より:

      add_filterを利用すればrangeによる絞り込みを行うことは可能です。
      例えばカスタムフィールド「scc_share_count_total」が10から15の投稿に絞る場合は以下のようなコードをテーマのfunctions.phpなどに追加します。

      一ヶ月以内の投稿のみに絞る場合は以下のようにします。