sql >> Base de Datos >  >> RDS >> Mysql

Prácticas recomendadas para mostrar resultados de búsqueda con fragmentos de texto asociados del resultado real

La búsqueda en la base de datos real está bien hasta que desee agregar características elegantes como la anterior. En mi experiencia, es mejor crear una tabla de búsqueda dedicada, con palabras clave y ID de página/URL/etc. Luego complete esta tabla cada n horas con contenido. Durante este llenado, puede agregar fragmentos para cada documento para cada palabra clave.

Alternativamente, un truco rápido podría ser:

<?php
$text = 'This is an example text page with content. It could be red, green or blue.';
$keyword = 'red';
$size = 5; // size of snippet either side of keyword

$snippet = '...'.substr($text, strpos($text, $keyword) - $size, strpos($text, $keyword) + sizeof($keyword) + $size).'...';
$snippet = str_replace($keyword, '<strong>'.$keyword.'</strong>', $snippet);
echo $snippet;
?>