説明
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.21.2
- マイナーな修正: メタクエリーのブール値から配列への変換。
4.21.1
- 動作の変更: ‘relevanssi_index_content’ と ‘relevanssi_index_titles’ フィルターフックは、2番目のパラメータとして投稿オブジェクトを取得するようになりました。
- マイナーな修正: Relevanssi が再利用可能なコンテンツブロック検索でブロックされるようになりました。
- マイナーな修正: Relevanssi がフィード検索をブロックしないようにしました。
- マイナーな修正: アクセント付き文字での完全一致ブーストを改善しました。
- マイナーな修正: Polylang の全言語モードで同義語の入力が可能でした。
4.21.0
- New feature: New filter hook
relevanssi_highlight_regex
makes it possible to adjust the regex used for highlighting. - New feature: New filter hook
relevanssi_excerpt_custom_fields
filters the list of custom fields used for creating the excerpt. - 新機能: 新しいフィルターフック
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
- New feature: Relevanssi can now create custom field specific excerpts that come from one custom field only and know which field that is.
- New feature: You can see the list of indexed custom field names in the indexing and excerpt settings.
- New feature: New filter hook
relevanssi_excerpt_specific_custom_field_content
filters the excerpt custom field content ifrelevanssi_excerpt_specific_fields
is enabled. - 動作の変更:
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
- New feature: Logging now includes a session ID (based on user ID for logged-in users, HTTP user agent for others, and current time, stable for 10 minutes per user). This is used to remove duplicate searches from live searches, keeping only the final search query.
4.18.4
- New feature: New filter hook
relevanssi_highlight_query
lets you modify the search query for highlighting. - 動作の変更: Relevanssi はデフォルトでフィード検索をしなくなりました。
4.18.3
- New feature: New filter hook
relevanssi_blocked_field_types
can be used to control which ACF field types are excluded from the index. By default, this includes ‘repeater’, ‘flexible_content’, and ‘group’. - New feature: New filter hook
relevanssi_acf_field_object
can be used to filter the ACF field object before Relevanssi indexes it. Return false to have Relevanssi ignore the field type. - 新機能: Relevanssi のデバッグモードがより多くの機能を持つようになりました。
- マイナーな修正: ACF フィールドの除外が再帰的になりました。親フィールドが除外されると、すべてのサブフィールドも除外されます。
- マイナーな修正: ドキュメント内ハイライトにおけるデータ属性の処理にバグがあり、サードパーティプラグインとの間で問題が生じていました。
- マイナーな修正: インデックス設定タブで wp_relevanssi データベーステーブルが存在するかどうかを確認し、存在しない場合はテーブルを作成するようにしました。
4.18.2
- New feature: Relevanssi now has a debug mode that will help troubleshooting and support.
- Minor fix: Using the_permalink() caused problems with search result links. That is now fixed. Relevanssi no longer hooks onto
the_permalink
hook and instead usespost_link
and other similar hooks.
4.18.1
- New feature: New filter hook
relevanssi_add_highlight_and_tracking
can be used to force Relevanssi to add thehighlight
and tracking parameters to permalinks. - 動作の変更: ‘relevanssi_wpml_filter’ フィルター関数は relevanssi_hits_filter のカスタムフィルターの問題を避けるため、優先度10ではなく9で実行されるようになりました。
- マイナーな修正: 投稿が見つからないケースをより適切に処理します。 投稿が見つからない場合、relvanssi_get_post() は WP_Error を返すようになりました。
- マイナーな修正: アポストロフィと引用符を含む検索クエリーをログから削除できるようになりました。
- マイナーな修正: スロットルが有効でない場合、検索タブのクエリーが遅くなる問題を修正しました。
4.18.0
- New feature: Relevanssi now shows the MySQL
max_allowed_packet
size on the debug tab. - New feature: Relevanssi now shows the indexing query on the debug tab.
- New feature: ACF field settings now include a ‘Exclude from Relevanssi index’ setting. You can use that to exclude ACF fields from the Relevanssi index.
- マイナーな修正: Relevanssi が
highlight
パラメータで検索キーワードの周りに余分な引用符を追加していました。 - マイナーな修正: ハイライトのデータ属性がさらに更新されました。Faeddur に感謝。
- マイナーな修正: タクソノミークエリの扱いが改善されました。これは Relevanssi が Polylang の言語制限を無視するという問題を抱えていた特に Polylang ユーザーの助けになるはずです。