Mysql
 sql >> Database >  >> RDS >> Mysql

Procedure consigliate per la visualizzazione dei risultati di ricerca con frammenti di testo associati dal risultato effettivo

La ricerca nel database effettivo va bene finché non si desidera aggiungere funzionalità sgargianti come quella sopra. Nella mia esperienza è meglio creare una tabella di ricerca dedicata, con parole chiave e ID pagina/URL/ecc. Quindi popolare questa tabella ogni n ore con i contenuti. Durante questa popolazione puoi aggiungere snippet per ogni documento per ogni parola chiave.

In alternativa, un trucco veloce potrebbe essere:

<?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;
?>