Cum funcționează căutarea în WordPress la nivel tehnic?
Folosesc căutarea WordPress pentru a căuta într-o gamă de postări personalizate și pentru a permite utilizatorului să navigheze în fiecare tip de postare individual.
Totuși, am observat că WordPress nu returnează întotdeauna cele mai bune potriviri. De exemplu, dacă caut "Microsoft", paginile care conțin termenul sporadic apar înaintea celor care îl folosesc frecvent.
În esență, încerc să aflu mai multe informații despre cum WordPress evaluează și ordonează paginile în funcție de relevanță și dacă pot influența acest lucru fără a instala plugin-uri suplimentare.
Orice ajutor este binevenit.

EDITARE - Versiunea actuală a WordPress suportă relevanța, așa că acest răspuns nu mai este corect.
Nu există un concept de rang sau relevanță, este doar o simplă interogare LIKE pe titlul și conținutul postării:
($wpdb->posts.post_title LIKE '{$n}{$term}{$n}') OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}')
Puteți utiliza filtrul posts_search
pentru a modifica sau a înlocui complet interogarea de căutare cu una proprie. Din /wp-includes/query.php
:
// Permite pluginurilor să adauge/șteargă/modifice contextual secțiunea de căutare a interogării bazei de date
$search = apply_filters_ref_array('posts_search', array( $search, &$this ) );
Consultați și filtrele de interogare disponibile pe pagina Codex WP_Query
.

Amuzant că menționezi asta... Nacin a făcut commit la cod pentru sortarea după relevanță cam acum o oră. De fapt, probabil în același timp în care tu scriai răspunsul tău. :)
http://core.trac.wordpress.org/changeset/25632

Pentru bloguri mari/populare, căutarea în tot conținutul este destul de nerealistă. Care este metoda recomandată pentru a accelera acest proces fără a șterge pur și simplu "SAU (...)" din query.php? Ar trebui să postez o nouă întrebare sau poți extinde răspunsul tău?

Începând cu WordPress 3.7 (octombrie 2013), rezultatele căutării sunt sortate după următoarele criterii (vezi ticket 7394):
- Potriviri exacte de propoziții în titlurile articolelor.
- Toți termenii de căutare în titlurile articolelor.
- Orice termeni de căutare în titlurile articolelor.
- Potriviri exacte de propoziții în conținutul articolelor.
Fiecare secțiune și orice articole rămase sunt apoi sortate după dată.
Există și noi filtre:
wp_search_stopwords
, pentru a filtra cuvintele de oprire ignorate înWHERE
.posts_search_orderby
, pentru a filtraORDER BY
la sortarea rezultatelor căutării.
