Maison >développement back-end >tutoriel php >Utiliser PHP et Manticore Search pour développer et implémenter la fonction de recherche en texte intégral

Utiliser PHP et Manticore Search pour développer et implémenter la fonction de recherche en texte intégral

WBOY
WBOYoriginal
2023-08-08 10:21:311242parcourir

利用PHP和Manticore Search开发实现全文搜索功能

Utiliser PHP et Manticore Search pour développer et implémenter une fonction de recherche en texte intégral

Introduction :
La recherche en texte intégral est l'une des fonctions courantes et importantes des applications Web modernes. Il permet aux utilisateurs de rechercher l'intégralité du contenu du texte par mots-clés pour trouver rapidement les informations dont ils ont besoin. Dans cet article, nous développerons une fonction de recherche en texte intégral utilisant PHP et Manticore Search, et fournirons quelques exemples de code pratiques.

1. Qu'est-ce que la recherche Manticore ?
Manticore Search est un moteur de recherche en texte intégral rapide, open source et riche en fonctionnalités. Il est basé sur le projet open source Sphinx Search et a apporté de nombreuses améliorations et optimisations sur cette base. Manticore Search possède de puissantes capacités d'indexation de texte intégral, prend en charge les mises à jour d'index en temps réel, prend en charge la recherche distribuée, etc. Dans notre exemple, nous utiliserons Manticore Search pour stocker et rechercher nos données textuelles.

2. Installez et configurez Manticore Search
Tout d'abord, nous devons installer et configurer Manticore Search. Vous pouvez télécharger le dernier package d'installation de Manticore Search depuis le site officiel de Manticore (https://manticoresearch.com/), puis l'installer et le configurer conformément à la documentation officielle.

3. Créer un index
Avant de commencer à utiliser Manticore Search, nous devons créer un index pour stocker nos données texte. Ouvrez un terminal, allez dans le répertoire d'installation de Manticore Search, et créez un index à l'aide de la commande suivante :

$ indexer --all --config /path/to/manticore.conf

Cela lira les paramètres de l'index à partir du fichier de configuration et créera les répertoires et fichiers requis pour l'index.

4. Insérer des données
Avant de commencer la recherche, nous devons insérer des données dans notre index. Vous pouvez insérer des données dans Manticore Search en utilisant l'exemple de code PHP suivant :

<?php
require_once 'vendor/autoload.php';

$client = new ManticoresearchClient(["host" => "localhost", "port" => 9308]);
$indexName = "my_index";

$indexParams = [
    "body" => [
        "fields" => [
            "title" => [
                "type" => "text",
                "indexed" => true,
                "stored" => true,
            ],
            "content" => [
                "type" => "text",
                "indexed" => true,
                "stored" => false,
            ],
        ]
    ]
];

$response = $client->indices()->create($indexName, $indexParams);

$documentParams = [
    "index" => $indexName,
    "body" => [
        [
            "id" => 1,
            "title" => "PHP全文搜索",
            "content" => "使用PHP和Manticore Search开发实现全文搜索功能",
        ],
        [
            "id" => 2,
            "title" => "Manticore Search简介",
            "content" => "Manticore Search是一个快速、开源且功能丰富的全文搜索引擎。",
        ]
    ]
];

$response = $client->bulk($documentParams);

Dans l'exemple de code ci-dessus, nous créons d'abord un objet client de Manticore Search. Ensuite, nous avons défini le nom et les propriétés de l'index. Ensuite, nous créons un index en utilisant la méthode $client->indices()->create(). Enfin, nous insérons les données dans l'index en utilisant la méthode $client->bulk(). $client->indices()->create()方法创建了一个索引。最后,我们使用$client->bulk()方法将数据插入到索引中。

五、搜索数据
当我们插入数据后,我们可以使用以下PHP代码示例来搜索数据:

<?php
require_once 'vendor/autoload.php';

$client = new ManticoresearchClient(["host" => "localhost", "port" => 9308]);
$indexName = "my_index";

$searchParams = [
    "index" => $indexName,
    "body" => [
        "query" => [
            "match" => [
                "content" => "PHP"
            ]
        ]
    ]
];

$response = $client->search($searchParams);

foreach ($response["hits"]["hits"] as $hit) {
    echo "ID: ".$hit["_id"]."
";
    echo "Title: ".$hit["_source"]["title"]."
";
    echo "Content: ".$hit["_source"]["content"]."
";
}

在上面的代码示例中,我们首先创建了一个Manticore Search的客户端对象。然后,我们定义了搜索参数,指定了要搜索的索引和查询条件。接下来,我们使用$client->search()

5. Rechercher des données

Après avoir inséré les données, nous pouvons utiliser l'exemple de code PHP suivant pour rechercher les données :
rrreee

Dans l'exemple de code ci-dessus, nous créons d'abord un objet client de Manticore Search. Ensuite, nous avons défini les paramètres de recherche, en précisant l'index à rechercher et les critères de requête. Ensuite, nous utilisons la méthode $client->search() pour rechercher et imprimer les résultats de la recherche en boucle. 🎜🎜Conclusion : 🎜En utilisant PHP et Manticore Search, nous pouvons facilement implémenter la fonction de recherche en texte intégral. La puissance et la flexibilité de Manticore Search en font un choix idéal. J'espère que cet article vous sera utile et vous êtes invités à approfondir et à explorer davantage de fonctionnalités et d'utilisation de Manticore Search. 🎜

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