WordPress検索は裏でどのように機能しますか?


11

WordPress検索を使用して、カスタム投稿タイプの範囲を検索し、ユーザーが個々の投稿タイプにドリルダウンできるようにしています。

しかし、私はWordPressが最初に「最高」の一致だと思うものを返していないことに気づきました。たとえば、Microsoftを検索すると、この用語を定期的に使用するページの前に、不規則な用語を含むページが引き続き返されます。

基本的に私は、WordPressがページをランク付けして関連性を決定する方法、およびプラグインをインストールしなくてもこれに影響を与えることができるかどうかに関する情報を見つけようとしています

どんな助けも大歓迎です。


2
つまり、このサイトのひどい幅広い質問です-見るものを尋ねる何聞いていないセクションを。私はカップルの迅速なGoogle検索をした、そしてこの出くわした:WordPressの検索が少ないサック作る(それはYMMVので、しかし、'08からです)。プラグインなしで機能に影響を与えることに関しては-他の人のプラグインにアレルギーがあるなら、おそらくあなたはあなた自身のものを書かなければならないでしょう。プラグインはWPの機能に影響を与えるだけであり、それがあなたがしようとしていることです。正しい?
Pat J

1
おかげで、他人のプラグインの使用を避けたくないわけではなく、「プラグインの無秩序な増加」を避けたいという事実、つまり「ああ、私はこれとそのためのプラグインを用意します」ということに気づく前に、あなたはそれらの30を実行しています。
2013

私は理解し、共感します。いくつかのプラグインを実行していますが、多数のプラグインを作成しました。
Pat J

回答:


10

編集-WordPressの現在のバージョンは関連性をサポートしているため、この回答は正確ではなくなりました。


ランクや関連性の概念はありません。これは、投稿のタイトルとコンテンツに対する単純なLIKEクエリです。

($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}')

posts_searchフィルターを使用して、検索クエリを変更するか、完全に独自のものに置き換えることができます。から/wp-includes/query.php

// Allow plugins to contextually add/remove/modify the search section of the database query
$search = apply_filters_ref_array('posts_search', array( $search, &$this ) );

Codexページで利用可能なクエリフィルターWP_Queryも参照してください


4
面白いことに、あなたは言うべきです…Nacinは約1時間前に関連性でソートするためにコードをコミットしました。実際、おそらくあなたが答えを書いていたのと同じ時期に。:) core.trac.wordpress.org/changeset/25632
デーブ・ロス

大きくて人気のあるブログの場合、すべてのコンテンツを検索するのはかなり非現実的です。query.phpから「OR(...)」を削除せずにこれを高速化するための推奨される方法は何ですか?新しい質問を送信する必要がありますか、それとも回答を拡張できますか?
PJ Brunet 2014年

5

WordPress 3.7(2013年10月)以降、検索結果は次の基準でソートされます(チケット7394を参照)。

  • 投稿タイトルの全文一致。
  • 投稿タイトルのすべての検索語。
  • 投稿タイトルの検索語。
  • 投稿コンテンツで全文一致。

次に、各セクションと残りの投稿が日付順に並べ替えられます。

新しいフィルターもあります:

  • wp_search_stopwords、で無視されたストップワードをフィルタリングしWHEREます。
  • posts_search_orderbyORDER BY検索結果を並べ替えるときにをフィルタリングします。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.