Position actuelle: Accueil> Derniers articles> Comment implémenter des fonctions de recherche et d'indexation distribuées efficaces dans les microservices PHP

Comment implémenter des fonctions de recherche et d'indexation distribuées efficaces dans les microservices PHP

M66 2025-07-02

Comment implémenter des fonctions de recherche et d'indexation distribuées efficaces dans les microservices PHP

Avec le développement rapide d'Internet, l'application des mégadonnées a fait des moteurs de recherche l'une des infrastructures de la société moderne. Dans les applications Web, la fonction de recherche et d'indexation peut non seulement fournir une récupération efficace des données, mais également apporter un filtrage d'informations plus précis aux utilisateurs. Cet article présentera comment implémenter les fonctions de recherche et d'indexation distribuées dans l'architecture de microservice PHP pour vous aider à optimiser les performances des moteurs de recherche.

Présentation de la recherche et de l'index distribués

La technologie de recherche et d'indexation distribuée divise d'énormes ensembles de données dans plusieurs éclats et les traite en parallèle sur différents serveurs. Cette technologie comprend principalement les composants clés suivants:

  • Stockage distribué: les données sont stockées sur plusieurs serveurs et l'efficacité de récupération des données est améliorée grâce à l'indexation des rayons.
  • Recherche distribuée: En traitant plusieurs fragments en parallèle, il accélère considérablement la vitesse de recherche et fusionne enfin les résultats et les retours de recherche.
  • Indexation distribuée: Créez des index via la rupture pour améliorer la vitesse de traitement des requêtes de données.

Utilisez Elasticsearch pour implémenter la recherche et l'indexation distribuées

Elasticsearch est un moteur de recherche et d'analyse distribué open source construit sur Apache Lucene, offrant de puissantes capacités de recherche en texte intégral et de recherche distribuée, adaptées à toutes sortes d'applications. Voici les étapes spécifiques pour utiliser Elasticsearch pour implémenter la recherche et l'indexation distribuées dans les microservices PHP:

Installez Elasticsearch avec PHP Elasticsearch Client

Tout d'abord, installez Elasticsearch dans le système Ubuntu:

 <span class="fun">$ sudo apt-get updat</span>
 <span class="fun">$ sudo apt-get install elasticsearch</span>

Ensuite, installez le client PHP Elasticsearch via Composer:

 <span class="fun">Le compositeur nécessite Elasticsearch / Elasticsearch</span>

Connectez-vous au cluster Elasticsearch

Connectez-vous au cluster Elasticsearch à l'aide du client Elasticsearch dans PHP, ce qui suit est l'exemple de code:

 <span class="fun">exiger «fournisseur / autoload.php»;</span>
 <span class="fun">$ client = elasticsearchClientBuilder :: Create () -> build ();</span>

Créer des index et ajouter des documents

Ensuite, vous pouvez créer des index et ajouter de la documentation à l'aide du client Elasticsearch, voici l'exemple de code:

 <span class="fun">$ params = [</span>
<span class="fun"> &#39;index&#39; => &#39;my_index&#39;,</span>
<span class="fun"> &#39;corps&#39; => [</span>
<span class="fun"> &#39;paramètres&#39; => [</span>
<span class="fun"> &#39;number_of_shards&#39; => 2,</span>
<span class="fun"> &#39;number_of_replicas&#39; => 1,</span>
<span class="fun"> ],</span>
<span class="fun"> &#39;mappings&#39; => [</span>
<span class="fun"> &#39;propriétés&#39; => [</span>
<span class="fun"> &#39;title&#39; => [&#39;type&#39; => &#39;text&#39;],</span>
<span class="fun"> &#39;contenu&#39; => [&#39;type&#39; => &#39;text&#39;],</span>
<span class="fun"> &#39;Timestamp&#39; => [&#39;type&#39; => &#39;date&#39;],</span>
<span class="fun"> ]]</span>
<span class="fun"> ]]</span>
<span class="fun"> ]]</span>
 <span class="fun">$ réponse = $ client-> indices () -> create ($ params);</span>
 <span class="fun">$ params = [</span>
<span class="fun"> &#39;index&#39; => &#39;my_index&#39;,</span>
<span class="fun"> &#39;id&#39; => &#39;1&#39;,</span>
<span class="fun"> &#39;corps&#39; => [</span>
<span class="fun"> &#39;title&#39; => &#39;Exemple&#39;,</span>
<span class="fun"> &#39;contenu&#39; => &#39;Ceci est un exemple de document.&#39;,</span>
<span class="fun"> &#39;Timestamp&#39; => &#39;2022-01-01T00: 00: 00Z&#39;,</span>
<span class="fun"> ]]</span>
 <span class="fun">$ réponse = $ client-> index ($ params);</span>

Effectuer une opération de recherche

Enfin, vous pouvez rechercher dans le client Elasticsearch, voici un exemple de code de la recherche:

 <span class="fun">$ params = [</span>
<span class="fun"> &#39;index&#39; => &#39;my_index&#39;,</span>
<span class="fun"> &#39;corps&#39; => [</span>
<span class="fun"> &#39;query&#39; => [</span>
<span class="fun"> &#39;match&#39; => [</span>
<span class="fun"> &#39;contenu&#39; => &#39;Exemple&#39;,</span>
<span class="fun"> ],</span>
<span class="fun"> ]]</span>
<span class="fun"> ]]</span>
 <span class="fun">$ réponse = $ client-> recherche ($ params);</span>
 <span class="fun">foreach ($ réponse [&#39;hits&#39;] [&#39;hits&#39;] comme $ hit) {</span>
<span class="fun"> echo $ hit [&#39;_ source&#39;] [&#39;title&#39;];</span>
 <span class="fun">}</span>

Résumer

Cet article présente comment implémenter les fonctions de recherche et d'indexation distribuées dans les microservices PHP et fournit des exemples de code détaillés. Avec Elasticsearch, vous pouvez atteindre des moteurs de recherche efficaces et améliorer les performances et l'évolutivité du système. Grâce à ces étapes, vous pouvez plus facilement créer votre propre service de recherche distribué, offrant aux utilisateurs une expérience de récupération d'informations rapide et précise.