Utiliser PHP et Manticore Search pour développer diverses fonctions de recherche de fichiers

PHPz
Libérer: 2023-08-05 10:56:02
original
878 Les gens l'ont consulté

Utilisez PHP et Manticore Search pour développer diverses fonctions de recherche de fichiers

Introduction :
Dans le développement des technologies de l'information modernes, les fonctions de recherche de fichiers sont devenues des fonctionnalités standard de diverses applications. Afin de fournir une expérience de recherche de fichiers efficace et précise, nous pouvons utiliser PHP et Manticore Search pour le développement. Manticore Search est un moteur de recherche en texte intégral open source doté de performances et de fonctionnalités très flexibles. Dans cet article, nous présenterons comment utiliser PHP et Manticore Search pour développer diverses fonctions de recherche de fichiers et fournirons des exemples de code.

1. Installez et configurez Manticore Search
Tout d'abord, nous devons installer et configurer Manticore Search. La dernière version de Manticore Search peut être téléchargée sur le site officiel (https://manticoresearch.com/). Une fois l'installation terminée, vous devez créer un index et configurer ses champs. Voici un exemple de fichier de configuration d'index (index.conf) :

source src
{
    type            = mysql
    sql_host        = localhost
    sql_user        = username
    sql_pass        = password
    sql_db          = database
    sql_query_pre   = SET NAMES utf8
    sql_query       = SELECT id, title, content FROM documents
}

index idx
{
    source          = src
    path            = /path/to/index/
    docinfo         = extern
    morphology      = stem_en
    min_word_len    = 2
    charset_type    = utf-8
}
Copier après la connexion

La configuration ci-dessus se connectera à la base de données MySQL et utilisera la table documents qu'elle contient comme source de données. Notez le remplacement de usernamepassworddatabase/path/to/index/ par la valeur réelle.

2. Fonction de recherche de fichiers de base
Ensuite, vous pouvez utiliser le code PHP pour vous connecter à Manticore Search et exécuter les fonctions de recherche de fichiers de base. Voici un exemple de code PHP :

<?php
// 连接到Manticore Search
$host = 'localhost';
$port = 9306;
$index = 'idx';

$sphinx = new SphinxClient();
$sphinx->setServer($host, $port);

// 执行文件搜索
$query = 'php开发';
$result = $sphinx->query($query, $index);

// 输出搜索结果
if ($result['total_found'] > 0) {
    foreach ($result['matches'] as $match) {
        echo 'ID: ' . $match['id'] . '<br>';
        echo '标题: ' . $match['attrs']['title'] . '<br>';
        echo '内容: ' . $match['attrs']['content'] . '<br><br>';
    }
} else {
    echo '没有找到匹配的文件。';
}
?>
Copier après la connexion

Dans le code ci-dessus, une instance SphinxClient est d'abord créée et l'adresse et le port connectés à Manticore Search sont définis. Ensuite, une recherche par mot-clé est effectuée et les résultats sont enregistrés dans la variable $result. Enfin, les résultats de la recherche sont générés via une boucle.

3. Fonctions avancées de recherche de fichiers
En plus de la recherche de base par mot-clé, Manticore Search prend également en charge des fonctions de recherche de fichiers plus avancées, telles que le tri, le filtrage et la mise en surbrillance. Voici un exemple de code :

  1. Trier les résultats de la recherche de fichiers

    // 按文件标题排序搜索结果
    $sphinx->setSortMode(SPH_SORT_EXTENDED, 'title ASC');
    
    // 按相关性和文件标题排序搜索结果
    $sphinx->setSortMode(SPH_SORT_EXTENDED, '@relevance DESC, title ASC');
    Copier après la connexion
  2. Filtrer les résultats de la recherche de fichiers

    // 仅搜索包含某个标签的文件
    $sphinx->setFilter('tags', [1]);
    
    // 仅搜索包含某个标签且在一定时间范围内的文件
    $sphinx->setFilter('tags', [1]);
    $sphinx->setFilterRange('timestamp', $start, $end);
    Copier après la connexion
  3. Mettre en surbrillance les résultats de la recherche

    // 设置高亮显示的HTML标签和样式
    $sphinx->setOverride('html', '<span class="highlight">', '</span>');
    
    // 获取带有高亮显示的文件标题和内容
    $sphinx->setSelect('*, HIGHLIGHT(title) AS highlighted_title, HIGHLIGHT(content) AS highlighted_content');
    Copier après la connexion

    Le code ci-dessus ne démontre qu'une petite partie de la fonctionnalité avancée de recherche de fichiers. , vous pouvez le personnaliser davantage en fonction de vos besoins.

    Résumé :
    Cet article présente comment utiliser PHP et Manticore Search pour développer diverses fonctions de recherche de fichiers. Tout d’abord, nous avons installé et configuré Manticore Search et créé un index. Ensuite, le code PHP est utilisé pour se connecter à Manticore Search et démontrer les capacités de recherche de fichiers de base et avancées. J'espère que cet article pourra vous aider à développer rapidement de puissantes fonctionnalités de recherche de fichiers.

    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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!