投稿日:2020年11月26日

今回は、RelevanssiというWordPressのページ内検索を強化するPlug-Inをご紹介します。
 

Relevanssi
Relevanssi
インストールし有効化します。
 
Relevanssi
▲ダッシュボードにUser searchesAdmin searchが追加されます。
 

Relevanssi
共通クエリ
検索上位20のユーザー検索クエリ、それらのクエリが何回検索されたか、それらの検索結果数を見ることができます。
リセットするには「Reset」と入力してResetボタンをクリックします。
サイト内検索のクエリを分析し、集客に役立てることができます。
 

Relevanssi
管理者検索
この検索を利用して、WordPressからの制限を受けずにRelevanssi検索を行うことができます。ここでは、すべての投稿タイプを検索することができます。
 

ここからはRelevanssiの設定です。
Relevanssi
Relevanssiをクリックすると詳細が開きます。
 
Relevanssi
OverviewIndexingAttachmentsSearchingLoggingExcepts and highlightsSynonymsStopwordsRedirectsDebugging の10個のタブで構成されてます。
設定を行うタブと、説明文だけのタブがあります。
全てをこのページでは紹介し切れないので、説明文だけのタグは固定ページに翻訳したものを、設定を行うタブは、本ページにて紹介したいと思います。

 Overview

和訳ページはこちら概要 

 02_Indexing

Relevanssi
Save the optionsで設定を保存します。このボタンは最上部と最下部にあります。
Build the indexで検索のインデックスを作成します。
説明文を翻訳するとBuild the indexは既存のインデックスを空にしてから再構築を行います。
これはOverviewタグでも説明している通り、以降は自動化されますが、年に1回くらいの作成を推奨しています。
Index unindexed postsは、インデックス化されていない投稿を探し、インデックス化してくれます。
インデックスを空にせずインデックスされてない投稿のみをインデックス化します。
ビルドを中断しなければならない場合に使えます。
Build the indexIndex unindexed postsをクリックすると下図のような進捗画面が表示されます。
Relevanssi
▲インデックスはすぐに反応するはずです。数分経っても何も起こらない場合は、滞っている可能性があります。インデックスの問題の最も一般的な原因は、ショートコードとの互換性がないことです。また、Relevanssiをアップデートしたばかりの場合は、ブラウザのハードリフレッシュを行うことで、ブラウザが古いバージョンのRelevanssiスクリプトを使用しようとしていないことを確認することができます。
 
Relevanssi
インデックスの状態
インデックス後の詳細が表示されます。
上の結果だと、
インデックスに3つの文書が含まれています。
インデックスには0個の用語が含まれています。
最低10個のポストIDがインデックス化されました。
不正確な場合はupdate the countsをクリックします。
 
Relevanssi
インデックスオプション
このページの設定を変更した場合は、有効になる前にインデックスの再作成が必要です。
 
Relevanssi
ポストタイプ
投稿、固定、添付ファイル(画像など)のインデックスをするかの選択をします。
説明文の翻訳は、「検索対象外」と表示されている投稿タイプをインデックス化したい場合は、気にせずにインデックス化することができますが、Searchタブの「Respect exclude_from_search」設定のチェックを外す必要があります。」
attachmentをチェックすると下図が展開されます。
Relevanssi
画像のインデックス
このオプションを有効にすると、Relevanssiは画像をインデックスに含めます。このオプションを無効にすると、他の添付ファイルのみがインデックスに含まれます。
添付ファイルタイプのインデックス作成の詳細な制御については、Controlling attachment types in the Knowledge base. を参照してください。

 
Relevanssi
タクソノミー
カテゴリータグ投稿フォーマットのインデックスをするかの選択をします
説明文の翻訳は、「ここでタクソノミーをチェックすると、そのタクソノミーの用語は投稿と一緒にインデックス化されます。例えば “post_tag “を選択した場合、タグを検索するとそのタグを持つ全ての投稿が検索されます。」
 

Relevanssi
コメント
nonecommentscomments and pingbacksから選択します。
説明文の翻訳は「コメントをインデックスするかどうかは、コメントだけをインデックスするか、コメントとトラックとピングバックを含むすべてをインデックスするかを選択できます。」
 

Relevanssi
カスタムフィールド
noneallvisiblesomeから選択します。
allは投稿のすべてのカスタムフィールドをインデックス化します。
visibleは、ユーザーインターフェイスで表示されているカスタムフィールド(アンダースコアで始まらない名前のもの)のみを表示します。
someは、インデックスを作成するカスタムフィールドを個別に選択することができます。
 

Relevanssi
著者表示名
投稿者の表示名をインデックス化
投稿者表示名を検索すると、その投稿者の投稿が返ってきます。
 

Relevanssi
抜粋
抜粋をインデックス化する
Relevanssiは、抜粋した内容で投稿を見つけます。
 

Relevanssi
ショートコード
ショートコードを展開する
インデックス作成時のショートコードの展開
チェックした場合、インデックスを作成する前に投稿内容のショートコードを展開します。そうでない場合、ショートコードは削除されます。
ショートコードを使用して動的なコンテンツを含む場合、Relevanssiはインデックスを更新せず、インデックスはインデックスが作成された時点でのショートコードの状態を反映します。
 

Relevanssi
Advanced indexing settings
Show advanced settingsをクリックすると、この下に掲載している図が展開されます。
 

Relevanssi
最小の単語数
これより短い文字数の単語はインデックス化されません。
1文字検索を有効にするには、フィルタフック relevanssi_block_one_letter_searches に false を返すフィルタ関数を追加する必要があります。

add_filter('relevanssi_block_one_letter_searches', '__return_false');

しかし、このフィルターフックは日本語に対応してないと、Plug-In作者のMikko Saari氏が語っています。
私が考えた裏技として、Plug-In relevanssi ディレクトリ内、lib > search.php の1130行付近。

if (relevanssi_strlen($term) < 2) {
    /**
     * Allows the use of one letter search terms.
     *
     * Return false to allow one letter searches.
     *
     * @param boolean True, if search term is one letter long and will be blocked.
     */
    if (apply_filters('relevanssi_block_one_letter_searches', true)) {
        return null;
    }
    // No fuzzy matching for one-letter search terms.
    $term_where_template = $basic_query;
}

▲この記述を全てコメントアウトすると1文字検索が可能になります。
※Plug-Inのバージョンアップの度に元に戻りますのでご注意ください。
※自己責任にてお願いします。
 

Relevanssi
句読点の制御
ここでは、句読点の制御方法を調整することができます。詳細はヘルプを参照してください。ここでの変更はインデックスの再作成を必要とすることを覚えておいてください。
 

Relevanssi
ハイフンとダッシュ
KeepReplace with spacesRemoveから選択します。
ハイフンとダッシュ(enとemダッシュ)はどのように扱うべきですか? 一般的にはスペースで置き換えるのが最良の方法ですが、場合によっては完全に削除するのが最良の方法です。また、そのままにしておくことが最良の選択肢になることはほとんどありません。
 

Relevanssi
アポストロフィーと引用符
Replace with spacesRemoveから選択します。
Relevanssiはアポストロフィーや引用符をどのように扱うべきか?これらをそのままにしておくことはできません。デフォルトではスペースで置き換えるようになっていますが、削除しても意味がある場合もあります。
 

Relevanssi
アンパサンド
KeepReplace with spacesRemoveから選択します。
Relevanssi はアンパサンドをどのように扱うべきか?一般的にはスペースに置き換えるのが最良の方法ですが、例えばD&Dの話が多い場合は、アンパサンドを残しておくと便利です。
 

Relevanssi
小数点以下の区切り文字
KeepReplace with spacesRemoveから選択します。
小数点間のピリオドはどのように扱うべきか?スペースで置き換えるのがデフォルトのオプションですが、これでは数字が完全に削除されてしまうことがよくあります。小数点以下の数字をたくさん検索する必要がある場合は、ピリオドは残しておいてください。
 
Hide advanced settingsをクリックするとAdvanced indexing settingsで表示していた項目が非表示になります。
 
全ての設定が済んだらSave the optionsをクリックします。

 Attachments

和訳ページはこちら概要 

 Searching

以下より、項目ごとに説明します。
Relevanssi
デフォルトの演算子
OR - any term preset is enougtAND - require all termsから選択します。
検索のデフォルトの演算子を決定します。
 要は、or検索かand検索を設定します。
AND - require all termsを選択すると下図が表示されます。
Relevanssi
OR検索からのフォールバック
OR検索からのフォールバックを無効にします。
デフォルトでは、AND検索で結果が見つからない場合、Relevanssiは演算子をORに切り替えて再度検索を実行します。このオプションをチェックすることで、これを防ぐことができます。
 

Relevanssi
デフォルトの並び順
Relevance (highly recommended)Post dateから選択します。
上書きしたり、階層の並び順を使用したい場合(例えば、関連性による最初の並び順が、記事のタイトルによって同じ場合)、orderbyのクエリ変数を使用することができます。詳細については、ヘルプを参照してください。
 

Relevanssi
キーワードの一致
Whole wordsPartial wordsPartial words if no hits for whole wordsから選択します。
「Partial words if not hits for whole words」オプションを選択すると、予想外の結果になる可能性があります。ほとんどの場合、"Partial words "オプションの方が良い選択となります。
Whole wordsとは、検索語全体を含む投稿のみを検索することを意味します。
Partial wordsは、インデックス内の単語が検索語で始まったり、検索語で終わったりする場合も含まれます('ana'で検索すると'anaconda'や'banana'にはマッチしますが、'banal'にはマッチしません)。単語の中にもRelevanssiがマッチするようにしたい場合は、ヘルプを参照してください。
 要は、完全一位か、部分一致、完全一致ではない場合に部分一致。
 

Relevanssi
▲優先度
表組み内の優先度は乗数です。
優先度を大きくするには、より大きな数値を使用します。優先度を低くするには、1よりも低い数値を使用します。
コンテンツ、タイトル、コメント、タグ、カテゴリーが対象。
 

Relevanssi
完全一致を最適化
完全に致するように最適化します。
このオプションを有効にすると、検索クエリがタイトルやコンテンツの中にフレーズとして含まれている一致した内容に重み付けが行われます。最適化を調整するには、relevanssi_exact_match_bonusフィルタフックを使用します。詳細はヘルプを参照してください。
 

Relevanssi
管理者検索
管理者検索にはRelevanssiを使用してください。
チェックを入れると、管理画面での検索にRelevanssiが使われます。ページ検索はWordPressの仕様のためRelevanssiを使用しません。
 

Relevanssi
exclude_from_search を尊重する
カスタム投稿タイプの exclude_from_search を尊重する
チェックした場合、「exclude_from_search」がtrueに設定されているカスタム投稿タイプの投稿は表示されません。
 

Relevanssi
絞り込み検索
データベースが小さいので、このオプションを有効にする必要はありません。
このオプションを有効にすると、Relevanssiは検索結果を1タームあたり最大500件までに制限します。これによりパフォーマンスは向上しますが、関連するドキュメントが検索されなくなることがあります。詳細はヘルプを参照してください。
※throttleを「絞り」「絞り込み」というニュアンスで捉えました。
 

Relevanssi
カテゴリに制限
すべての検索に対して、検索結果をカテゴリに制限することができます。検索ごとの制限やその他のオプション(タグの制限など)については、ヘルプを参照してください。
 

Relevanssi
カテゴリの除外
これらのカテゴリの投稿は検索結果に含まれません。これらの投稿を完全にインデックスから除外するには、ヘルプを参照してください。
 

Relevanssi
投稿を除外
検索結果からそれらのページを除外するには、投稿やページのIDをカンマで区切って入力してください
 
全ての設定が済んだらSave the optionsをクリックします。

 Logging

Relevanssi
ログを有効にする
ユーザークエリのログを保持します。
有効にすると、Relevanssiはユーザークエリをログに記録します。ログはダッシュボードの管理メニューの「ユーザー検索」で調べることができ、wp_relevanssi_logデータベーステーブルに保存されます。
 

Relevanssi
ログユーザーIP
クエリでユーザーのIPを記録します。
この機能を有効にすると、ユーザーのIPアドレスがログに記録されます。なお、この機能はお客様がお住まいの地域では違法となる可能性があり、EUではGDPRに該当する人物登録が行われます。
 

Relevanssi
ユーザーを除外する
ログに記録されない数値のユーザーID、もしくは、ユーザーログイン名をCSVリストから除外します。
 

Relevanssi
ログを整形
何日分のログをデータベースに保存するか。
整形しない場合は0に設定します。
 

Relevanssi
ログのエクスポート
ボタンを押すと、検索ログをCSVファイルとして書き出すことができます。
 
全ての設定が済んだらSave the optionsをクリックします。

 Excepts and highlights

Relevanssi
カスタム検索結果
カスタム検索結果の作成
これを有効にするのは、実際にカスタム抜粋を使用する場合のみです。
※ここをチェックしないと、以降が全てグレーアウトして設定できません。
 

Relevanssi
スニペットの長さ
文字数の数値を入力し、wordscharactersから選択します。
文字よりも単語を使う方が早いです。何か理由があるか、投稿が短い場合を除いて、文字は使わないでください。
 

Relevanssi
抜粋で許可されるタグ
抜粋で許可したいタグをすべてリストアップします。例えば、<p><a><strong>
 

Relevanssi
抜粋にカスタムフィールドを使用する
抜粋を構築するためにカスタムフィールドコンテンツを使用する
抜粋作成時のインデックス作成にもカスタムフィールドの設定を使用してください。このオプションを有効にすると、Relevanssiで生成された抜粋にカスタムフィールドの内容が表示されます。
現在のカスタムフィールド設定: すべてのカスタムフィールド
 

Relevanssi
検索ヒットのハイライト表示
ハイライトのタイプ
No highlighting<mark><em><strong>Text colorBackground colorCSS StyleCSS Classから選択します。
カスタムスニペットを動作させる必要があります。
Text colorBackground colorCSS StyleCSS Classを選択した場合、下図が表示さるので、それぞれの設定を行います。
Relevanssi
Text colorを選択した場合。
▼検索結果
Relevanssi
 

Relevanssi
Background colorを選択した場合。
▼検索結果
Relevanssi
 

Relevanssi
CSS Styleを選択した場合。
ハイライトは、スタイルのパラメータにこのCSSを指定して<span>で包含します。
 

Relevanssi
CSS Classを選択した場合。
ハイライトはこのクラス名を<span>で包含します。
 

Relevanssi
タイトルのハイライト
タイトルでクエリ用語を強調表示
タイトルのハイライトは、検索結果テンプレートの変更が必要です。検索結果テンプレートのthe_title()relevanssi_the_title()に置き換える必要があります。詳細については、コンテキストヘルプを参照してください。
 

Relevanssi
ドキュメントのハイライト
ドキュメント内のクエリ用語を強調表示
ユーザーが検索結果から投稿を開いたときにハイライト表示されます。このためには、検索結果ページからのリンクに追加のパラメータ(ハイライト)が必要です。
 

Relevanssi
コメントのハイライト
コメントでクエリ用語を強調表示
ユーザーが検索結果から投稿を開いたときに、コメントにヒットしたものをハイライト表示します。
 

Relevanssi
ハイライトを展開
ハイライトを拡大して単語全体をカバー
ハイライトが単語の一部に一致する場合、このオプションを有効にすると、ハイライトが拡大されて単語全体がハイライトされます。
▼チェックなしの検索結果
Relevanssi

▼チェックありの検索結果
Relevanssi
どちらも句点がおかしな感じで選択されてます。
 

Relevanssi
検索結果の内訳
抜粋での検索ヒット数の内訳
検索ヒットの内訳を抜粋で表示する。
動作するにはカスタムスニペットが必要です。
 

Relevanssi
内訳のフォーマット
body%, %title%, %categories%, %tags%, %taxonomies%, %comments%, %customfields%, %author%, %excerpt% および %mysqlcolumns% を使用して、(投稿の異なる部分での) ヒット数、総ヒット数を %total%, ドキュメントの重みを %score%, 各検索語のヒット数を %terms% で表示します。

 Synonyms

Relevanssi
同義語
検索がより良い結果を見つけるためにここに同義語を追加します。ユーザーが頻繁に製品名のスペルミスをしていたり、他の理由で一つのものに多くの名前を使用していることに気付いた場合、同義語を追加することで検索結果をより良くすることができます。
ただし、同義語が多すぎると検索が混乱することがあるので、やりすぎないようにしてください:ユーザーは検索クエリがすべてに一致しない場合は理解していますが、予想外のものに一致する場合は混乱してしまいます。
ここでのフォーマットは、key = valueです。同義語のリストに dog = houndを追加すると、dogの検索は自動的にdog houndの検索になり、dogまたは houndのどちらかを含む投稿にマッチします。これはOR検索でのみ動作します: AND検索では、同義語は検索を制限するだけで、今の検索はdoghoundの両方を含む投稿のみを検索します。
同義語は一方向のみです。両方の方向にしたい場合は、再び同義語を追加してください、逆に: hound = dog.
dog = "great dane"は機能しますが、"great dane" = dogは機能しません。

 Stopwords

Relevanssi
ストップワード
ここに単語を入力すると、ストップワードのリストに追加されます。その単語は自動的にインデックスから削除されるので、再インデックス化は必要ありません。カンマで単語を区切って、多くの単語を同時に入力することができます。
 
追加するストップワード
データベース内のストップワードのリストです。ストップワードから削除するには、単語をクリックしてください。ストップワードを削除しても自動的にインデックスには戻りませんので、それらの単語をインデックスに戻すには、ストップワードを削除した後にすべての投稿を再インデックス化する必要があります。
カスタマイズしたい語句をここにカンマ区切りで入力し、Addをクリックします。
するとに追加されます。
Romove all stopwordsをクリックで全て削除、Add default stopwordsをクリックするとに追加されます。
ストップワードのエクスポート可能なリスト
リストをバックアップしたり、別のブログにコピーしたり、そうでなければリストを必要とする場合は、ここでストップワードのリストをコピーすることができます。
 
コンテンツのストップワード
コンテンツストップワードはプレミアム機能で、投稿内容にのみ適用されるストップワードを設定することができます。ストップワードが投稿のタイトル、タグ、カテゴリ、カスタムフィールド、その他の部分に表示されていてもインデックスされます。コンテンツのストップワードを使用するには、Relevanssi Premiumが必要です。
 
インデックス内の25の最も一般的な単語
これらの単語は優れたストップワード素材です。データベース内のほとんどの投稿に出てくる単語は、検索するときにはかなり無意味です。これは、あなたの言語で利用可能なストップワードリストがない場合に、全く新しいストップワードリストを作成する簡単な方法でもあります。単語をクリックして、その単語をストップワードリストに追加します。その単語はインデックスからも削除されるので、インデックスを再構築する必要はありません。
の語句をクリックするとに追加されます。

 Redirects

和訳ページはこちら概要 

 Debugging

Relevanssi
デバッグ
投稿をインデックス化する際の問題点を把握するために、以下のフィールドに投稿ID番号を入力することで、Relevanssiが投稿をどのように見ているかをテストすることができます。
Relevanssi Premiumでは、投稿編集ページで各投稿に対してこの機能を確認することができます。Relevanssi Premiumの購入はこちらから。 
 

まとめ

DeepL翻訳を使用しましたが、そのまま記載するのではなく、おかしいと思った箇所は自分なりに訳しました。
それでも、おかしな箇所があると思いますが、そこはご容赦ください。
Webやプログラムを勉強するには英語は避けては通れないので、地道に勉強したいと改めて思いました。
 
Relevanssi
正直、ここまで高機能とは思いもしませんでした。
全てを把握し使いこなすには、何度も試行錯誤が必要かと思います。
こちらも、地道に勉強したいと思います。
 
最後まで読んでくださりありがとうございました。
 

こちらの記事も読まれてます。

 

Pocket