Maison >développement back-end >tutoriel php >Elasticsearch en PHP implémente la recherche de localisation géographique et les recommandations environnantes
Elasticsearch implémente la recherche de localisation géographique et les recommandations environnantes en PHP
Résumé : La recherche de localisation géographique et les recommandations environnantes jouent un rôle essentiel dans de nombreuses applications Web. Elasticsearch est un puissant moteur de recherche open source qui offre des fonctionnalités riches et une flexibilité pour mettre en œuvre facilement des recherches de localisation géographique et des recommandations à proximité. Cet article explique comment utiliser PHP et Elasticsearch pour la recherche de localisation géographique et les recommandations à proximité, et fournit des exemples de code spécifiques.
Texte de l'article :
Introduction :
Avec la popularité de l'Internet mobile et des services de géolocalisation, la demande des utilisateurs pour des recherches et des recommandations basées sur des informations de géolocalisation augmente également. Qu'il s'agisse de recommandations de restaurants, de recherches d'entreprises à proximité ou de recommandations d'attractions touristiques, la recherche de localisation et les recommandations d'environnements sont devenues l'une des fonctions importantes de nombreuses applications Web. Elasticsearch est actuellement l'un des moteurs de recherche les plus populaires. Il fournit de riches fonctions de recherche de localisation géographique et de recommandations environnantes, et avec la combinaison parfaite de PHP, nous pouvons facilement implémenter ces fonctions.
Recherche de localisation géographique :
La recherche de géolocalisation consiste à rechercher des résultats liés à cet emplacement dans une plage donnée en spécifiant une coordonnée de localisation géographique. Par exemple, recherchez des restaurants ou des entreprises à une certaine distance. Tout d'abord, nous devons créer un index dans Elasticsearch avec un champ de géolocalisation. Voici l'exemple de code pour créer l'index :
$params = [ 'index' => 'restaurants', 'body' => [ 'mappings' => [ '_doc' => [ 'properties' => [ 'name' => [ 'type' => 'text', ], 'location' => [ 'type' => 'geo_point', ], ], ], ], ], ]; $response = $client->indices()->create($params);
Ensuite, nous pouvons stocker le nom du restaurant et les coordonnées de géolocalisation dans Elasticsearch. Voici un exemple de code pour stocker les documents dans l'index :
$params = [ 'index' => 'restaurants', 'type' => '_doc', 'body' => [ 'name' => 'Restaurant A', 'location' => [ 'lat' => 40.7128, 'lon' => -74.0060, ], ], ]; $response = $client->index($params);
Lors de la recherche, nous pouvons filtrer les résultats à l'aide du paramètre de géolocalisation. Voici un exemple de code pour rechercher des restaurants en fonction d'une situation géographique et d'une distance données :
$params = [ 'index' => 'restaurants', 'body' => [ 'query' => [ 'bool' => [ 'filter' => [ 'geo_distance' => [ 'distance' => '1km', 'location' => [ 'lat' => 40.7128, 'lon' => -74.0060, ], ], ], ], ], ], ]; $response = $client->search($params);
Recommandation environnante :
La recommandation environnante consiste à recommander les lieux ou services les plus proches à l'utilisateur en fonction de sa position actuelle. Dans Elasticsearch, nous pouvons utiliser l'agrégation de localisation géographique pour mettre en œuvre des recommandations à proximité. Voici l'exemple de code pour rechercher des restaurants à proximité en fonction d'une situation géographique donnée et les trier par distance :
$params = [ 'index' => 'restaurants', 'body' => [ 'query' => [ 'match_all' => [], ], 'sort' => [ '_geo_distance' => [ 'location' => [ 'lat' => 40.7128, 'lon' => -74.0060, ], 'order' => 'asc', 'unit' => 'km', ], ], 'size' => 10, ], ]; $response = $client->search($params);
Dans l'exemple ci-dessus, nous utilisons le paramètre de tri _geo_distance
pour trier les restaurants et préciser que l'unité de tri est le kilomètre.
Résumé :
En utilisant PHP et Elasticsearch combinés, nous pouvons facilement implémenter les fonctions de recherche de localisation géographique et de recommandations environnantes. Tout d’abord, nous devons créer un index avec un champ de géolocalisation. Nous pouvons ensuite stocker des informations de géolocalisation et effectuer une recherche à l'aide des paramètres de géolocalisation. Pour les recommandations à proximité, nous pouvons utiliser la fonction d'agrégation de géolocalisation et trier les résultats par distance. Ce qui précède est l'exemple de code de base, vous pouvez apporter les modifications appropriées en fonction des besoins réels. J'espère que cet article vous aidera à comprendre et à apprendre comment implémenter la recherche de localisation géographique et les recommandations environnantes à l'aide d'Elasticsearch en PHP.
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!