Maison  >  Article  >  développement back-end  >  Comment effectuer une recherche et une indexation en texte intégral à l'aide de PHP et SQLite

Comment effectuer une recherche et une indexation en texte intégral à l'aide de PHP et SQLite

PHPz
PHPzoriginal
2023-07-28 18:17:071666parcourir

Comment utiliser PHP et SQLite pour la recherche et l'indexation en texte intégral

Introduction :
Avec la croissance explosive des informations sur Internet, la recherche en texte intégral est devenue l'un des moyens importants de traitement de données massives. Lors du développement d’un site Web ou d’une application, nous devons souvent implémenter une fonctionnalité de recherche en texte intégral afin que les utilisateurs puissent trouver rapidement les informations dont ils ont besoin. Cet article présentera en détail comment utiliser PHP et SQLite pour implémenter des fonctions de recherche et d'indexation en texte intégral.

1. Installez et configurez SQLite

Tout d'abord, nous devons installer la base de données SQLite. Vous pouvez télécharger la version adaptée à votre système depuis son site officiel (https://www.sqlite.org/) et l'installer. Une fois l'installation terminée, l'extension PHP pour SQLite doit être ajoutée au fichier de configuration PHP (php.ini) afin que nous puissions utiliser l'extension SQLite en PHP. Ajoutez le contenu suivant au fichier de configuration :

extension=sqlite3.so // pour Linux
extension=php_sqlite3.dll // pour Windows

Enregistrez le fichier de configuration et redémarrez le serveur Web pour vous assurer que la configuration prend effet.

2. Créer une base de données SQLite et une table de données

Avant de mettre en œuvre la recherche et l'indexation en texte intégral, nous devons d'abord préparer une base de données SQLite et créer une table de données pour stocker nos données. Ouvrez un terminal ou une invite de commande, accédez au répertoire de votre projet et exécutez la commande suivante pour créer la base de données et la table de données :

sqlite3 mydatabase.db

CREATE TABLE articles (

id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
content TEXT

);

Enregistrez et quittez SQLite Terminal.

3. Insérer des données

Nous allons simuler certaines données d'articles et les insérer dans la base de données pour la recherche et l'indexation en texte intégral. Dans le code PHP, nous pouvons utiliser le code suivant pour insérer des données :

70b0fcd75b7959217522a78607aac88bsetAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$articles = [

['title' => '使用PHP进行全文搜索', 'content' => '在PHP中,我们有几种方法可以实现全文搜索功能。'],
['title' => 'PHP和SQLite全文搜索的厉害之处', 'content' => 'PHP和SQLite是一对绝佳的组合,它们可以轻松地实现全文搜索和索引功能。'],
// 更多文章...

];

foreach ($articles as $article) {

$sql = "INSERT INTO articles (title, content) VALUES (:title, :content)";
$stmt = $pdo->prepare($sql);
$stmt->execute($article);

}

?>

Le code ci-dessus créera une instance PDO à laquelle se connecter Base de données SQLite et utilisez des instructions préparées pour insérer des données dans la table de données. Vous pouvez insérer plus de données d'article si nécessaire.

4. Utiliser la recherche et l'index en texte intégral

Dans SQLite, nous pouvons utiliser la recherche et l'index en texte intégral pour implémenter la recherche en texte intégral. Tout d’abord, nous devons créer un index de texte intégral pour accélérer les recherches. On peut créer un index sur les colonnes titre et contenu de l’article. Exécutez l'instruction SQL suivante pour créer l'index :

CREATE VIRTUAL TABLE articles_fts USING FTS5(title, content);

Ensuite, nous devons copier les données de la table de données d'origine dans l'index de texte intégral et garder l'index cohérent avec les données originales synchrones. Exécutez l'instruction SQL suivante pour y parvenir :

INSERT INTO articles_fts(articles_fts) VALUES('rebuild');

Cela maintiendra l'index de texte intégral synchronisé avec les données d'origine. Ensuite, nous pouvons utiliser le code suivant pour effectuer une recherche en texte intégral :

70b0fcd75b7959217522a78607aac88bsetAttribute(PDO:: ATTR_ERRMODE, PDO ::ERRMODE_EXCEPTION);

$search = "Recherche en texte intégral PHP";
$sql = "SELECT * FROM articles_fts WHERE content MATCH :search OR title MATCH :search";
$stmt = $pdo-> prepare ($sql );
$stmt->bindParam(':search', $search, PDO::PARAM_STR);
$stmt->execute();

$results = $stmt->fetchAll( PDO::FETCH_ASSOC );

foreach ($results as $result) {

echo "标题:{$result['title']},内容:{$result['content']}

";
}

?>

Le code ci-dessus recherchera les articles contenant le mot-clé "Recherche en texte intégral PHP" et affichera les résultats dans la sortie du formulaire de titre et de contenu.

Conclusion :
Cet article explique comment utiliser PHP et SQLite pour implémenter des fonctions de recherche et d'indexation en texte intégral. La mise en œuvre de la recherche en texte intégral peut grandement améliorer l'expérience utilisateur d'un site Web ou. et aider les utilisateurs à trouver rapidement les informations dont ils ont besoin. De cette façon, nous pouvons facilement implémenter des fonctions de recherche et d'indexation en texte intégral dans les applications Web en utilisant SQLite comme base de données.

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