Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour implémenter la fonction de recherche en texte intégral du système CMS

Comment utiliser PHP pour implémenter la fonction de recherche en texte intégral du système CMS

WBOY
WBOYoriginal
2023-08-06 15:03:121135parcourir

Comment utiliser PHP pour implémenter la fonction de recherche en texte intégral d'un système CMS

Avec le développement rapide d'Internet, les systèmes de gestion de contenu (CMS) sont devenus une partie très importante du développement de sites Web. Pour un système CMS, la fonction de recherche en texte intégral est indispensable. Grâce à la recherche en texte intégral, les utilisateurs peuvent facilement rechercher divers contenus sur le site Web, améliorant ainsi l'expérience utilisateur et l'efficacité. Cet article expliquera comment utiliser PHP pour implémenter la fonction de recherche en texte intégral du système CMS et fournira quelques exemples de code.

1. Principes de base et processus de récupération de texte intégral

La récupération de texte intégral fait référence à la mise en correspondance de tout le contenu du document en fonction des mots-clés saisis par l'utilisateur et au renvoi de résultats de recherche pertinents. Le principe et le processus de base sont les suivants :

  1. Stocker les documents nécessitant une récupération en texte intégral dans la base de données. Chaque document peut être considéré comme un enregistrement contenant un titre, un contenu, un résumé et d'autres informations.
  2. Créez un index de texte intégral dans la base de données, qui enregistrera les mots-clés et leurs informations de localisation dans le document.
  3. L'utilisateur saisit des mots-clés à rechercher et le programme transmet les mots-clés au module de recherche en texte intégral.
  4. Le module de recherche en texte intégral trouve les documents correspondants dans l'index en fonction de mots-clés et renvoie les résultats de la recherche.
  5. Le programme affiche les documents pertinents, la pertinence et d'autres informations en fonction des résultats de la recherche.

2. Utilisez PHP pour implémenter la fonction de récupération de texte intégral du système CMS

Ci-dessous, nous utiliserons PHP pour implémenter la fonction de récupération de texte intégral du système CMS. Les étapes spécifiques sont les suivantes :

  1. Créer. une table de base de données

Tout d'abord, nous devons créer une table de base de données pour stocker les documents qui nécessitent une récupération en texte intégral. La structure du tableau peut être définie comme suit :

CREATE TABLE `articles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `title` varchar(255) NOT NULL,
  `content` text NOT NULL,
  `created_at` datetime NOT NULL,
  PRIMARY KEY (`id`),
  FULLTEXT KEY `ft_title_content` (`title`,`content`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
  1. Insérer des données de test

Ensuite, nous insérons quelques données de test dans la base de données :

INSERT INTO `articles` (`title`, `content`, `created_at`) VALUES
('PHP全文检索实现', '全文检索是指根据用户输入的关键词,在文档的所有内容中进行匹配,并返回相关的搜索结果。', '2021-01-01'),
('MySQL全文检索实现', '全文检索是一种对文本内容进行搜索的技术,可以提高用户的搜索效率。', '2021-02-01'),
('Elasticsearch全文检索实现', 'Elasticsearch是一个开源的分布式搜索引擎,提供了全文检索的功能。', '2021-03-01');
  1. Créer une fonction de recherche en texte intégral

Nous pouvons créer un fonction de recherche de texte pour effectuer des opérations de recherche en texte intégral. Le code spécifique est le suivant :

function search($keywords) {
    $pdo = new PDO('mysql:host=localhost;dbname=your_database_name', 'your_username', 'your_password');
    $keywords = explode(' ', $keywords);
    $keywords = array_map(function($keyword) {
        return '+' . $keyword . '*';
    }, $keywords);
    $keywords = implode(' ', $keywords);
    $sql = "SELECT * FROM `articles` WHERE MATCH (`title`, `content`) AGAINST (:keywords IN BOOLEAN MODE)";
    $stmt = $pdo->prepare($sql);
    $stmt->bindValue(':keywords', $keywords);
    $stmt->execute();
    return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
  1. Effectuer l'opération de recherche

Enfin, nous pouvons appeler la fonction de récupération de texte intégral pour effectuer l'opération de recherche et afficher les résultats de la recherche. Le code spécifique est le suivant :

$keywords = $_GET['keywords'];
$results = search($keywords);
if (empty($results)) {
    echo '未找到相关结果';
} else {
    foreach ($results as $result) {
        echo '<h2>' . $result['title'] . '</h2>';
        echo '<p>' . $result['content'] . '</p>';
        echo '<p>' . $result['created_at'] . '</p>';
    }
}

Le code ci-dessus transmet les mots-clés saisis par l'utilisateur à la fonction de recherche en texte intégral search(), effectue l'opération de recherche en texte intégral et affiche les résultats de la recherche à l'utilisateur.

Conclusion

A travers les exemples de code ci-dessus, nous pouvons voir qu'il n'est pas compliqué d'utiliser PHP pour implémenter la fonction de recherche en texte intégral du système CMS. Il vous suffit de créer une table de base de données et d'insérer des données de test, puis de créer une fonction de recherche en texte intégral et enfin d'effectuer l'opération de recherche. Bien entendu, le code ci-dessus n'est qu'un exemple simple. Dans des scénarios réels, des problèmes tels que la pagination des données et le tri des résultats de recherche doivent également être pris en compte. J'espère que cet article pourra être utile pour utiliser PHP pour implémenter la fonction de recherche en texte intégral des systèmes CMS.

Matériaux de référence :

  • Documentation officielle PHP (https://www.php.net/)
  • Documentation officielle MySQL (https://dev.mysql.com/doc/refman/8.0/en/fulltext-search .html)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn