Personalizar palabras vacías por motor
SearchWP utiliza palabras vacías (palabras comunes que no son útiles al buscar, pero que pueden hinchar el índice) para omitir palabras de su índice y, por lo tanto, ignorar esos términos al buscar también. Eliminar palabras vacías aumenta la relevancia y mejora el rendimiento.
Por defecto, las palabras vacías de SearchWP son globales y se aplican a todos los motores. Si tiene una situación en la que desea personalizar las palabras vacías por motor, podemos aprovechar los hooks de SearchWP para hacer precisamente eso.
All hooks should be added to your custom SearchWP Customizations Plugin.
| <?php | |
| /** | |
| * Customize SearchWP stopwords per Engine. | |
| */ | |
| // Optional: remove all Stopwords so you can add only unique Stopwords per Engine. | |
| add_filter( 'searchwp\stopwords', '__return_empty_array' ); | |
| // Add unique stopword(s) for a single SearchWP Engine. | |
| add_filter( 'searchwp\query\search_string', function( $search_string, $query ) { | |
| // Remove "apple" and "orange" for my_engine searches. | |
| if ( 'my_engine' === $query->get_engine() ) { | |
| $search_string = str_replace( [ 'apple', 'orange' ], '', $search_string ); | |
| } | |
| return $search_string; | |
| }, 20, 2 ); |
En este fragmento, primero usamos el hook searchwp\stopwords para eliminar todas las palabras vacías de SearchWP. Necesitamos trabajar desde cero, indexando todo el contenido. Si almacenáramos palabras vacías en la pestaña de Configuración de la pantalla de configuración de SearchWP, esas palabras vacías se ignorarían antes de que tuviéramos la oportunidad de personalizarlas por motor.
El segundo hook searchwp\query\search_string aplica la lógica de las palabras vacías a cada búsqueda enviada a SearchWP.
En el fragmento anterior, eliminamos apple y orange de la cadena de búsqueda *solo* si el motor en uso es my_engine.
apple y orange *no* se eliminan si se utiliza cualquier otro motor.
Este fragmento se puede personalizar para cualquier motor o motores y cualquier palabra vacía.

