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.
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:
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:
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 à 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>
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"> 'index' => 'my_index',</span>
<span class="fun"> 'corps' => [</span>
<span class="fun"> 'paramètres' => [</span>
<span class="fun"> 'number_of_shards' => 2,</span>
<span class="fun"> 'number_of_replicas' => 1,</span>
<span class="fun"> ],</span>
<span class="fun"> 'mappings' => [</span>
<span class="fun"> 'propriétés' => [</span>
<span class="fun"> 'title' => ['type' => 'text'],</span>
<span class="fun"> 'contenu' => ['type' => 'text'],</span>
<span class="fun"> 'Timestamp' => ['type' => 'date'],</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"> 'index' => 'my_index',</span>
<span class="fun"> 'id' => '1',</span>
<span class="fun"> 'corps' => [</span>
<span class="fun"> 'title' => 'Exemple',</span>
<span class="fun"> 'contenu' => 'Ceci est un exemple de document.',</span>
<span class="fun"> 'Timestamp' => '2022-01-01T00: 00: 00Z',</span>
<span class="fun"> ]]</span>
<span class="fun">$ réponse = $ client-> index ($ params);</span>
Enfin, vous pouvez rechercher dans le client Elasticsearch, voici un exemple de code de la recherche:
<span class="fun">$ params = [</span>
<span class="fun"> 'index' => 'my_index',</span>
<span class="fun"> 'corps' => [</span>
<span class="fun"> 'query' => [</span>
<span class="fun"> 'match' => [</span>
<span class="fun"> 'contenu' => 'Exemple',</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 ['hits'] ['hits'] comme $ hit) {</span>
<span class="fun"> echo $ hit ['_ source'] ['title'];</span>
<span class="fun">}</span>
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.