¿Cómo funciona la búsqueda de WordPress entre bastidores?

9

Estoy usando la búsqueda de WordPress para buscar un rango de tipos de publicaciones personalizadas y permitir que el usuario profundice en cada tipo de publicación individual.

Sin embargo, estoy descubriendo que WordPress no está devolviendo lo que yo consideraría que son las "mejores" coincidencias primero. Por ejemplo, si busco Microsoft, las páginas que contienen el término de manera irregular todavía se devuelven antes que las páginas que usan el término regularmente.

Básicamente, estoy tratando de encontrar información sobre cómo WordPress clasifica las páginas y determina la relevancia, y si puedo influir en esto sin tener que instalar ningún complemento .

Cualquier ayuda muy apreciada.

    
pregunta chrisd 27.09.2013 - 17:48

2 respuestas

10

EDIT : la versión actual de WordPress es relevante, por lo que esta respuesta ya no es precisa.

No hay un concepto de rango o relevancia, es solo una consulta LIKE simple en el título y contenido de la publicación:

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

Puede usar el filtro posts_search para modificar o reemplazar completamente la consulta de búsqueda por la suya. De /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 ) );

Consulte también los filtros de consulta disponibles en la página WP_Query Codex .

    
respondido por el Milo 27.09.2013 - 18:27
5

Desde WordPress 3.7 (octubre de 2013) , los resultados de búsqueda se ordenan según los siguientes criterios (ver ticket 7394 ):

  • coincidencias de oraciones completas en los títulos de las publicaciones.
  • Todos los términos de búsqueda en títulos de post.
  • Cualquier término de búsqueda en títulos de post.
  • coincidencias de oraciones completas en el contenido de la publicación.

Cada sección y cualquier publicación restante se ordenan por fecha.

También hay nuevos filtros:

  • wp_search_stopwords , para filtrar las palabras de parada ignoradas en WHERE .
  • posts_search_orderby , para filtrar el ORDER BY al ordenar los resultados de búsqueda.
respondido por el fuxia 16.02.2014 - 18:54

Lea otras preguntas en las etiquetas