Utilisez PHP et coreseek pour réaliser une fonction de recherche intelligente de guides de voyage
1 Introduction
Avec le développement rapide d'Internet, les voyages font progressivement partie de la vie des gens. Les sites Web de guides de voyage fournissent aux gens une variété d'informations de voyage et d'informations de guide pour les aider à planifier et à profiter de leurs voyages. Cependant, à mesure que les informations stratégiques deviennent de plus en plus abondantes et diversifiées, la manière de fournir aux utilisateurs des fonctions de recherche plus intelligentes devient un défi.
Afin de résoudre ce problème, nous pouvons utiliser PHP et coreseek, un moteur de recherche en texte intégral, pour créer une fonction de recherche intelligente de guides de voyage.
2. Installez et configurez coreseek
Tout d'abord, nous devons installer et configurer coreseek. coreseek est un service de recherche basé sur le moteur de recherche en texte intégral Sphinx, qui peut fournir des capacités de recherche en texte intégral efficaces. Nous pouvons télécharger la dernière version de coreseek depuis le site officiel de coreseek (http://www.coreseek.cn/).
Le processus d'installation de coreseek est relativement compliqué et vous devez suivre la documentation officielle de coreseek. Tout d’abord, nous devons installer Sphinx, puis compiler et installer l’extension PHP de coreseek. Enfin, configurez le fichier de configuration coreseek et créez l'index Sphinx. Une fois l'installation et la configuration terminées, nous pouvons utiliser l'API fournie par coreseek pour effectuer une recherche en texte intégral.
3. Créer une base de données et des tables
Nous devons créer une base de données MySQL et créer une table dans la base de données pour stocker les informations du guide de voyage. Par exemple, nous créons une base de données nommée « travel_guide » et créons une table nommée « guides » dans la base de données. La structure de la table est la suivante :
CREATE TABLE guides
(guides
(
id
int(11) unsigned NOT NULL AUTO_INCREMENT,
title
varchar(255) NOT NULL DEFAULT '',
content
text NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
四、插入数据
在"guides"表中插入一些旅行攻略信息的示例数据。例如,我们插入三条数据,分别是关于北京、上海和杭州的旅行攻略。
INSERT INTO guides
(title
, content
id
int(11) unsigned NOT NULL AUTO_INCREMENT,
title
varchar(255 ) NOT NULL DEFAULT '',
content
text NOT NULL,
PRIMARY KEY (id
)
4. Insérer des données
INSÉRER DANS guides
(titre
, contenu
) VALEURS
('Guide de voyage de Shanghai', 'Shanghai est le centre économique de la Chine avec un paysage urbain moderne.'),
('Guide de voyage de Hangzhou', 'Hangzhou est une attraction touristique. en Chine, il y a une magnifique région panoramique de West Lake. ');
5. Implémenter la fonction de recherche
require_once('sphinxapi.php');
$cl->SetServer("localhost", 9312) ;
$cl->SetMatchMode(SPH_MATCH_EXTENDED);
$cl->SetLimits(0, 10);
$result = $cl->Query($key, "guides");
if ( $result === false) {
echo "搜索失败:" . $cl->GetLastError();
} else {
echo "共搜索到" . $result['total'] . "条结果:"; foreach ($result['matches'] as $match) { echo "ID:" . $match['id'] . ",标题:" . $match['attrs']['title'] . ",内容:" . $match['attrs']['content'] . "<br>"; }
}
?>
Dans le code, nous introduisons d'abord le fichier de bibliothèque PHP de coreseek (sphinxapi.php). Ensuite, précisez le mot-clé de recherche ($key = 'travel guide'). Ensuite, créez un objet SphinxClient et définissez l'adresse et le port pour vous connecter au service coreseek.
Si la recherche réussit, nous pouvons obtenir les informations sur le résultat de la recherche via la variable $result. Par exemple, utilisez $result['total'] pour obtenir le nombre total de résultats recherchés ; utilisez $result['matches'] pour obtenir les informations détaillées de chaque résultat, y compris l'ID et le titre.
6. Affichage des résultats
Enfin, nous pouvons afficher les résultats de la recherche sur la page Web. Supposons que nous utilisions le code HTML suivant pour afficher les résultats de recherche :
<title>旅行攻略搜索结果</title>
<h1>旅行攻略搜索结果</h1> <ul> <?php foreach ($result['matches'] as $match) { ?> <li> <h2><?php echo $match['attrs']['title']; ?></h2> <p><?php echo $match['attrs']['content']; ?></p> </li> <?php } ?> </ul>
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!