説明
Relevanssi は WordPress の標準的な検索機能を、多くの機能と設定可能なオプションを持つ、より優れた検索エンジンに置き換えます。より良い検索結果を得ることができることができますので、サイト利用者を満足させることができます。
これは Relevanssi の無料版です。機能が追加された Relevanssi Premium もあります。プレミアムについては Relevanssi.com をご覧ください。
Relevanssi を使用するには、大量の(数百メガバイトの) データベース領域が必要な場合があることに注意してください (妥当な見積もりは wp_posts
データベーステーブルのサイズを3倍することです)。もし、データベーステーブルの容量に制限がある場合、Relevanssi を使用すると問題が発生する可能性があります。そのような場合、Relevanssi の使用はおすすめできません。
主な特長
- 検索結果は、日付順ではなく、関連性の高い順にソートされます。
- あいまい一致: 完全な単語が一致しない場合、部分的な単語を一致させます。
- 1つの検索語のみに一致する文書 (OR クエリ) 、またはすべての語句の出現を必要とする文書 (ANDクエリ) を検索します。
- “検索フレーズ” のように引用符で囲んで検索します。
- キーワードがハイライトされ、ヒットした場所を示すカスタム抜粋を作成します。
- ユーザーが検索結果をクリックすると、文書内のキーワードがハイライトされます。
- コメント、タグ、カテゴリー、カスタムフィールドを検索できます。
- マルチサイトにも対応しています。
- bbPress をサポートしています。
- Gutenberg に対応しています。
高度な機能
- タイトル、タグ、コメントの重み付けを調整できます。
- クエリーのログ、最も人気のあるクエリー、ヒットしない最近のクエリーを表示できます。
- 隠し変数やプラグインの設定により、検索対象をカテゴリーやタグに限定することができます。
- カスタム投稿タイプやカスタムタクソノミーをインデックスします。
- ショートコードの内容をインデックスします。
- ユーザーの検索結果を基にした Google のような「Did you mean ?」サジェスト。
- WPML multi-language plugin と Polylang をサポートしています。
- s2member membership plugin, Members, Groups, Simple Membership などの会員管理向けプラグインに対応しています。
- 検索結果を思い通りにハックするための高度なフィルタリング。
- 検索結果のスロットリングにより、大規模データベースでのパフォーマンスを改善。
- シンプルなフィルターフックで、投稿内容や投稿タイトルのインデックスを無効にすることができます。
プレミアム機能 (Relevanssi プレミアム)
- 添付ファイルの内容をインデックス化 (PDF、Office、Open Office)。
- 「Did you mean ?」のスペルチェックを改善しました。
- マルチサイト内の複数のサイトにまたがって検索することができます。
- ユーザーのプロフィールを検索し、インデックスします。
- タクソノミーのキーワードページ (カテゴリー、タグ、カスタムタクソノミー) を検索し、インデックスを作成します。
- wp_posts MySQL テーブルの任意のカラムを検索し、インデックスを作成します。
- 任意の投稿タイプやタクソノミーにウェイトを設定できます。
- 新しい投稿に特別なウェイトを割り当てることができます。
- AND 検索と OR 検索を選択できるようにし、+と-演算子 (AND と NOT) が使用できます。
- 設定のエクスポートとインポート機能。
- WP CLI コマンド
- 関連する投稿
- 検索用のリダイレクト
謝辞
- Cristian Damm タグインデックス、コメントインデックス、投稿/固定ページ除外、その他全般。
- Marcus Dalgren UTF-8 対応。
- Warren Tape バージョン2.5.5対応。
- Mohib Ebrahim 詳細なバグ発見。
- John Calahan バージョン4.0の広範囲にわたるベータテスト。
スクリーンショット
インストール
- WordPress 管理画面からプラグインをインストールします。
- プラグインを有効化します。
- プラグインの設定ページで、説明に沿ってインデックスを構築してください。
- これで完了です !
Relevanssi は標準の検索フォームを使用するので、通常、検索結果のテンプレートを変更する必要はありません。
検索しても結果が表示されない場合、使用しているテーマが検索結果のテンプレートで query_posts() を呼び出している可能性があり、Relevanssi の動作に影響していることがあります。詳しくは The most important Relevanssi debugging trick をご覧ください。
アンインストール
プラグインをアンインストールするには、WordPress 管理画面の「プラグイン」からプラグインを削除します (プラグインページから、まず無効化し、次に削除)。プラグインファイルを手動で削除しても、データベースのテーブルとオプションは残ります。
FAQ
-
ナレッジベース
-
Relevanssi のナレッジベース で解決策や答えを見つけることができます。
-
コンテキストヘルプ
-
多くの一般的な問題に対する答えは、コンテクストメニューから見つけることができます。WordPress の管理画面右上の Relevanssi の設定ページにある「ヘルプ」をクリックするだけです。
-
Relevanssi が動作しません
-
Relevanssi をインストールし有効にしてもうまく動作しない場合、最も考えられる理由は、検索結果のテンプレートで
query_posts()
を呼び出していることです。これは Relevanssi の動作に不具合を起こす可能性があります。query_posts()
の呼び出しを削除してみてください。 -
アンパサンドやハイフンを含む単語の検索がうまくできません
-
句読点を含む単語が見つからない をお読みください。Relevanssiのインデックス作成設定から修正することができます。
-
ユーザーの検索ログはどこにありますか ?
-
管理メニューの「ユーザー検索」で確認できます。
-
関連性スコアを表示したい
-
Relevanssi は結果をソートするために使用する関連性スコアを $post 変数に格納します。以下を追加するだけです。
echo $post->relevance_score
これを検索結果テンプレートに追加すると、関連性スコアが表示されるようになります。
-
「Did you mean ?」とは何ですか
-
Relevanssi は Google のような “Did you mean ? “サジェスト を提供します。詳しくはナレッジベースの “Did you mean” サジェストを参照してください。
-
tf * idf の重み付けとは何ですか ?
-
情報検索で使われる基本的な重み付け方式です。tf は 用語頻度 の略で、idf は 逆文書頻度 (inverted document frequency) です。用語頻度とは単純に用語が文書に出現する回数で、文書頻度とはその用語が出現するデータベース内の文書の数です。
したがって、ある文書に対するその単語の重みは、その文書に出現する回数が多いほど、また、他の文書に出現する回数が少ないほど大きくなります。
-
ストップワードとは何ですか ?
-
各文書のデータベースには、無駄な単語がたくさんあります。ほぼすべての文書に登場する短い単語は、情報検索の目的にはまったく役に立たないものばかりです。基本的に、それらの逆引き文書頻度は低いので、マッチングにおいて大きな力を発揮することはありません。また、それらの単語を削除することで、インデックスを小さくし、検索を高速化することができます。
評価
貢献者と開発者
変更履歴
4.22.2
- セキュリティ修正: ログエクスポートにおける CSV インジェクション攻撃を防止。
- セキュリティ修正: ドキュメント数の更新へのアクセスを制限。
- マイナーな修正: 製品バリエーションでは、ドラフト製品のバリエーションが結果に表示される状況を回避するために、親製品のアクセス制限をチェック。
- マイナーな修正: TablePress の互換性が向上。
- マイナーな修正: Ninja Table 互換性コードにエラー処理を追加。
4.22.1
- セキュリティ修正: Relevanssi には、誰でも検索ログやクリック ログにアクセスできる脆弱性がありました。これで、ログのエクスポートが保護されました。
- 軽微な修正: 投稿または用語に言語が指定されていない場合、Relevanssi は Polylang で問題を抱えていました。Relevanssi はこれらの状況をより適切に処理できるようになりました。
- マイナーな修正: 投稿日の調整に、連結ではなく JOIN を置き換える MySQL エラーがありました。
- マイナーな修正: ログ データベース テーブルには session_id のインデックスが追加されました。そのインデックスがないと検索が大幅に遅くなる可能性があるためです。
4.22.0
- 新機能: 新しいフィルターフック
relevanssi_searchform_dropdown_args
は、検索フォームのwp_dropdown_categories()
の引数をフィルタリングします。 - 動作を変更: 検索フォームのショートコードのタクソノミードロップダウンがターム ID 順ではなくアルファベット順にソートされるようになりました。
- マイナーな修正: 空の単語を含む抜粋の構築におけるバグを発見。
- マイナーな修正:
post__in
とpost__not_in
の両方を設定できるようになり、同様にparent__in
とparent__not_in
も設定できるようになりました。 - マイナーな修正:
post_status
はクエリーパラメータとして利用できなくなりました。 - マイナーな修正: 投稿を関連度の昇順でソートできるようになりました。
4.21.2
- マイナーな修正: メタクエリーのブール値から配列への変換。
4.21.1
- 動作の変更: ‘relevanssi_index_content’ と ‘relevanssi_index_titles’ フィルターフックは、2番目のパラメータとして投稿オブジェクトを取得するようになりました。
- マイナーな修正: Relevanssi が再利用可能なコンテンツブロック検索でブロックされるようになりました。
- マイナーな修正: Relevanssi がフィード検索をブロックしないようにしました。
- マイナーな修正: アクセント付き文字での完全一致ブーストを改善しました。
- マイナーな修正: Polylang の全言語モードで同義語の入力が可能でした。
4.21.0
- 新機能: 新しいフィルターフック
relevanssi_highlight_regex
により、ハイライトに使われる正規表現を調整できるようになりました。 - 新機能: 新しいフィルターフック
relevanssi_excerpt_custom_fields
は抜粋を作成するために使用されるカスタムフィールドのリストをフィルタリングします。 - 新機能: 新しいフィルターフック
relevanssi_phrase_custom_fields
はフレーズ一致に使われるカスタムフィールドのリストをフィルタリングします。カスタムフィールドでのフレーズ一致を無効化するには空の配列を返します。 - 新機能: 新しいフィルターフック
relevanssi_phrase_taxonomies
はフレーズ一致に使われるタクソノミーのリストをフィルタリングします。タクソノミでのフレーズ一致を無効化するには空の配列を返します。 - 新機能: RELEVANSSI_DEBUG、WP_DEBUG、WP_DEBUG_DISPLAY がすべて true の場合、Relevanssi はエラーログ (PHP エラーログや WP_DEBUG_LOG で定義されているもの) にインデキシングデバッグメッセージを出力します。
- マイナーな修正: いくつかの ACF フィールドはグローバルな $post を変更し、インデックスの問題を引き起こします。Relevanssi はそれを防ごうとしています。
- マイナーな修正:
action
クエリ変数が非文字列であることによる致命的なエラーを回避しました。 - マイナーな修正: WPML でのタームインデックスは現在のアドミンの言語のタームのみをインデックスしていました。現在はすべての言語でインデックスされます。
4.20.0
- 新機能: Relevanssiは、1つのカスタムフィールドのみに由来するカスタムフィールド固有の抜粋を作成し、それがどのフィールドであるかを知ることができるようになりました。
- 新機能: インデックスと抜粋の設定で、インデックスされたカスタムフィールド名のリストを見ることができます。
- 新機能: 新しいフィルターフック
relevanssi_excerpt_specific_custom_field_content
は、relevanssi_excerpt_specific_fields
が有効化している場合、抜粋カスタムフィールドの内容をフィルタリングします。 - 動作の変更:
relevanssi_get_custom_field_content()
関数は文字列の代わりに配列を返すようになりました。relevanssi_excerpt_specific_fields
がオフの場合、以前の文字列の戻り値はインデックス0に文字列を持つ個別項目の配列として返されます。設定がオンの場合、配列のキーはフィールド名になります。 - マイナーな修正: マルチサイトインストール時のストップワード登録で、間違ったデータベーステーブルが使用されていたため、登録に失敗していました。
- マイナーな修正: トラブルを避けるため、マルチサイトのインストールを
wp_insert_site
(優先度10) からwp_initialize_site
(優先度200) に移動しました。 - マイナーな修正: ログエクスポートにセッション ID が含まれるようになりました。
- マイナーな修正: searchform ショートコードのカテゴリードロップダウンの “none” の値が-1から0に変更されました。
4.19.0
- 新機能: ログにセッション ID (ログインユーザーのユーザー ID、その他の HTTP ユーザーエージェント、および現在時刻に基づき、ユーザーごとに10分間安定) が含まれるようになりました。これは、ライブ検索から重複した検索を削除し、最後の検索クエリーのみを保持するために使用されます。
4.18.4
- 新機能: 新しいフィルタフック
relevanssi_highlight_query
は、ハイライトのための検索クエリーを変更することができます。 - 動作の変更: Relevanssi はデフォルトでフィード検索をしなくなりました。
4.18.3
- 新機能: 新しいフィルターフック
relevanssi_blocked_field_types
を使用して、どの ACF フィールドタイプをインデックスから除外するかを制御できます。デフォルトでは ‘repeater’、’flexible_content’、’group’ が含まれます。 - 新機能: 新しいフィルターフック
relevanssi_acf_field_object
はRelevanssiがインデックスを作成する前にACFフィールドオブジェクトをフィルタリングするために使用できます。Relevanssi がフィールドタイプを無視するには false を返します。 - 新機能: Relevanssi のデバッグモードがより多くの機能を持つようになりました。
- マイナーな修正: ACF フィールドの除外が再帰的になりました。親フィールドが除外されると、すべてのサブフィールドも除外されます。
- マイナーな修正: ドキュメント内ハイライトにおけるデータ属性の処理にバグがあり、サードパーティプラグインとの間で問題が生じていました。
- マイナーな修正: インデックス設定タブで wp_relevanssi データベーステーブルが存在するかどうかを確認し、存在しない場合はテーブルを作成するようにしました。
4.18.2
- 新機能: Relevanssi にデバッグモードが追加されました。
- マイナーな修正: the_permalink() を使用すると、検索結果のリンクに問題がありました。これは修正されました。Relevanssi はもはや
the_permalink
フックにフックせず、代わりにpost_link
と他の同様のフックを使います。
4.18.1
- 新機能: 新しいフィルターフック
relevanssi_add_highlight_and_tracking
は、Relevanssi がパーマリンクにhighlight
と tracking パラメータを追加するように強制するために使用できます。 - 動作の変更: ‘relevanssi_wpml_filter’ フィルター関数は relevanssi_hits_filter のカスタムフィルターの問題を避けるため、優先度10ではなく9で実行されるようになりました。
- マイナーな修正: 投稿が見つからないケースをより適切に処理します。 投稿が見つからない場合、relvanssi_get_post() は WP_Error を返すようになりました。
- マイナーな修正: アポストロフィと引用符を含む検索クエリーをログから削除できるようになりました。
- マイナーな修正: スロットルが有効でない場合、検索タブのクエリーが遅くなる問題を修正しました。
4.18.0
- 新機能: Relevanssi は MySQL の
max_allowed_packet
サイズをデバッグタブに表示するようになりました。 - 新機能: Relevanssi はデバッグタブにインデックス作成クエリーを表示するようになりました。
- 新機能: ACF フィールド設定に「Relevanssi インデックスから除外する」設定が追加されました。これを使用して、ACF フィールドを Relevanssi インデックスから除外することができます。
- マイナーな修正: Relevanssi が
highlight
パラメータで検索キーワードの周りに余分な引用符を追加していました。 - マイナーな修正: ハイライトのデータ属性がさらに更新されました。Faeddur に感謝。
- マイナーな修正: タクソノミークエリの扱いが改善されました。これは Relevanssi が Polylang の言語制限を無視するという問題を抱えていた特に Polylang ユーザーの助けになるはずです。