Position actuelle: Accueil> Derniers articles> Comment utiliser PHP pour obtenir une fonctionnalité de recherche en texte intégral efficace: un guide complet

Comment utiliser PHP pour obtenir une fonctionnalité de recherche en texte intégral efficace: un guide complet

gitbox 2025-06-16

1. Préface

Dans le développement moderne de sites Web, la fonction de recherche en texte intégral est indispensable, en particulier pour les sites de contenu riches tels que les nouvelles et les blogs. Pour fournir une meilleure expérience utilisateur et améliorer l'efficacité et la précision de la recherche, il est crucial de comprendre comment implémenter les capacités de recherche en texte intégral en PHP. Cet article vous montrera comment implémenter facilement cette fonctionnalité via PHP et MySQL.

2. Présentation

Tout d'abord, comprenons les principes de base de la recherche en texte intégral. Les méthodes de recherche de base de données traditionnelles reposent généralement sur la correspondance floue ou la correspondance des mots clés, mais ces méthodes sont souvent inefficaces et peu précises. Pour résoudre ce problème, la recherche en texte intégral a vu le jour, ce qui repose sur des techniques d'indexation et de segmentation des mots pour fournir une expérience de recherche plus précise.

L'idée principale de la recherche en texte intégral est de diviser les données de texte en mots distincts et de les indexer. Lorsque l'utilisateur entre un terme de recherche, le système localise rapidement le contenu texte pertinent en fonction de ces index, améliorant ainsi le degré de correspondance et l'efficacité de récupération des résultats de recherche.

3. Étapes de mise en œuvre

3.1 Préparation de l'environnement

Avant d'implémenter la recherche en texte intégral, vous devez d'abord préparer un environnement de développement. Cet article utilisera PHP comme langage de développement et sélectionnera MySQL comme base de données.

3.2 Créer un tableau de données

Dans MySQL, nous devons créer une table de données pour stocker le contenu texte qui sera recherché pour le texte intégral. Voici les instructions SQL qui créent des tables de données:

 CREATE TABLE `news` (
            `id` INT(11) NOT NULL AUTO_INCREMENT,
            `title` VARCHAR(255) NOT NULL,
            `content` TEXT NOT NULL,
            PRIMARY KEY (`id`),
            FULLTEXT KEY `title` (`title`, `content`)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Dans ce tableau, les champs «Title» et «Content» sont utilisés pour la recherche de texte intégral, avec «ID» comme clé principale.

3.3 Insérer des données

La façon d'insérer des données est la même que d'habitude, mais avant d'insérer, le texte doit être segmenté par mot. PHP fournit des outils de segmentation des mots open source, tels que Jieba, qui peuvent nous aider à accomplir cette tâche.

 $content = 'Ceci est un morceau de données de texte qui nécessite une recherche de texte intégral';
// utiliserjiebaFaire la segmentation des mots
$words = jieba($content);
// Insérer des données
$sql = "INSERT INTO `news` (`title`, `content`) VALUES ('Recherche en texte intégral', '" . json_encode($words) . "')";
mysqli_query($conn, $sql);

Le code ci-dessus utilise Jieba pour enregistrer le participe texte à la base de données, jetant ainsi les bases de recherches en texte intégral ultérieur.

3.4 Implémentation de la fonction de recherche

L'implémentation de la fonction de recherche est divisée en deux parties: extraire les mots clés et affichage des résultats de recherche.

Tout d'abord, nous devons extraire les mots des mots clés entrés par l'utilisateur, puis rechercher en utilisant la fonction FullText de MySQL:

 $keyword = 'Recherche en texte intégral';
// 对关键词Faire la segmentation des mots
$words = jieba($keyword);
// 执行Recherche en texte intégral
$sql = "SELECT * FROM `news` WHERE MATCH (`title`, `content`) AGAINST ('" . implode(' ', $words) . "' IN BOOLEAN MODE)";
$result = mysqli_query($conn, $sql);

Ici, nous utilisons le participe Jieba pour diviser les mots clés et les transmettre à MySQL pour la correspondance, et utiliser les instructions `` Match 'et «contre» pour la recherche de texte intégral.

Nous pouvons ensuite afficher les résultats de recherche à l'utilisateur:

 echo '<ul>';
while ($row = mysqli_fetch_assoc($result)) {
    echo '<li>' . $row['title'] . '</li>';
}
echo '</ul>';

Le code ci-dessus affiche les titres d'information recherchés dans une liste non ordonnée, et les utilisateurs peuvent cliquer pour afficher le contenu détaillé.

4. Résumé

Grâce à cet article, nous avons appris à implémenter une fonction de recherche en texte intégral efficace dans PHP. La recherche en texte intégral peut efficacement améliorer l'efficacité et la précision de la recherche, en particulier pour les sites Web à forte intensité de contenu. Les étapes clés incluent la segmentation des mots de données, la création d'index et la présentation des résultats de recherche. Avec ces techniques maîtrisées, vous pouvez implémenter un système de recherche efficace dans vos projets.