WP サイト内検索をデフォルトのLIKE検索から「全文検索」仕様にする〜ACF: Better Search

WordPressサイトには予め「検索」機能が内蔵されているので、サイト内を対象として任意のキーワードで検索ができる検索ボックスをウィジェット等を使ってサイトに実装することは容易です。デフォルトの検索機能は、投稿記事と固定ページのタイトルと本文、抜粋から検索する(LIKE 検索〜あいまい検索)ことになっていますが、カテゴリやタグなどに検索範囲を広げることもできるのですが、実際のトコロ、意図する検索結果を得られないことが多いです。

そのため従来このサイトでは「Search Everything」プラグインで検索範囲や機能を強化しておりましたら、それは結構な検索強化にはなったのですが、こちらが意図しないモノまで検索結果に表示することが度々あったのと、どうやらプラグインサポートが終了したみたいだったので、その機会に「あいまい検索」から「全文検索」をサポートする「Full-Text Search」プラグインを導入しました、

日本語の文字列 (プレーンテキスト) で検索します。(検索結果からHTML タグが除かれる)インストールすると予め検索インデックスを作成し、検索ワードとの関連を独自に検索スコア化して検索結果に反映させる仕組みになってます。プラグインを置き換えて2年位、当初望んでいた検索結果の反映にかなり近い「全文検索」結果を得られていましたが...

WordPress システムアップデートによるものなのか、プラグインのバッティングによるものか判然とはしないのですが、最近になって全文検索/タグ検索/カスタムフィールド検索が旨く動作しないようになり「Full-Text Search」プラグインの使用を中止、同時期に検討していた「ACF: Better Search」プラグインに置き換えることにしました。

当初このプラグインを使わなかった理由は...

  • 管理コンソールで「Advanced Custom Fields 」プラグインの追加を要求してきます(エラーアラートが出ます)が、追加しなくても特に動作は問題ないようです。
  • SQL データベース クエリのアップデートが必要です。

今回は利用に当たりどちらも並行実施しました。もちろん問題なく動作して全文検索に対応します。最近のバージョンでは記事内の各単語だけでなく、記事のフレーズ、文章の検索に対応、検索精度もかなり上がっているように感じます。

「源泉をポリタンク4個分購入」という文章キーワードで検索するとちゃんと該当する文章が含まれる記事タイトルを表示するし、タグに忍ばせてある秘密のキーワードを含む記事の検索もこなしてくれます。