Heim >Backend-Entwicklung >PHP-Tutorial >Elasticsearch in PHP implementiert die Suche nach geografischen Standorten und umliegenden Empfehlungen
Elasticsearch implementiert die geografische Standortsuche und Umgebungsempfehlungen in PHP
Zusammenfassung: Die geografische Standortsuche und Umgebungsempfehlungen spielen in vielen Webanwendungen eine wichtige Rolle. Elasticsearch ist eine leistungsstarke Open-Source-Suchmaschine, die umfangreiche Funktionen und Flexibilität bietet, um geografische Standortsuchen und Empfehlungen in der Nähe einfach zu implementieren. In diesem Artikel wird die Verwendung von PHP und Elasticsearch für die Suche nach geografischen Standorten und Empfehlungen in der Nähe vorgestellt und spezifische Codebeispiele bereitgestellt.
Artikeltext:
Einleitung:
Mit der Beliebtheit von mobilem Internet und Geolokalisierungsdiensten steigt auch die Nachfrage der Nutzer nach Suchen und Empfehlungen auf Basis von Geolokalisierungsinformationen. Ob es sich um Restaurantempfehlungen, die Suche nach Unternehmen in der Nähe oder um Empfehlungen zu Touristenattraktionen handelt, die Standortsuche und Umgebungsempfehlungen sind zu einer wichtigen Funktion vieler Webanwendungen geworden. Elasticsearch ist derzeit eine der beliebtesten Suchmaschinen. Sie bietet umfassende geografische Standortsuche und Umgebungsempfehlungsfunktionen, und mit der perfekten Kombination von PHP können wir diese Funktionen problemlos implementieren.
Geografische Standortsuche:
Bei der Geostandortsuche wird nach Ergebnissen gesucht, die sich auf diesen Standort innerhalb eines bestimmten Bereichs beziehen, indem eine geografische Standortkoordinate angegeben wird. Suchen Sie beispielsweise nach Restaurants oder Geschäften in einer bestimmten Entfernung. Zuerst müssen wir in Elasticsearch einen Index mit einem Geolocation-Feld erstellen. Hier ist der Beispielcode zum Erstellen des Index:
$params = [ 'index' => 'restaurants', 'body' => [ 'mappings' => [ '_doc' => [ 'properties' => [ 'name' => [ 'type' => 'text', ], 'location' => [ 'type' => 'geo_point', ], ], ], ], ], ]; $response = $client->indices()->create($params);
Als nächstes können wir den Namen des Restaurants und die Geolokalisierungskoordinaten in Elasticsearch speichern. Hier ist ein Beispielcode zum Speichern von Dokumenten im Index:
$params = [ 'index' => 'restaurants', 'type' => '_doc', 'body' => [ 'name' => 'Restaurant A', 'location' => [ 'lat' => 40.7128, 'lon' => -74.0060, ], ], ]; $response = $client->index($params);
Bei der Suche können wir die Ergebnisse mithilfe des Geolocation-Parameters filtern. Das Folgende ist ein Beispielcode für die Suche nach Restaurants basierend auf einem bestimmten geografischen Standort und einer bestimmten Entfernung:
$params = [ 'index' => 'restaurants', 'body' => [ 'query' => [ 'bool' => [ 'filter' => [ 'geo_distance' => [ 'distance' => '1km', 'location' => [ 'lat' => 40.7128, 'lon' => -74.0060, ], ], ], ], ], ], ]; $response = $client->search($params);
Umgebungsempfehlung:
Umgebungsempfehlung bedeutet, dem Benutzer basierend auf seinem aktuellen Standort die nächstgelegenen Orte oder Dienstleistungen zu empfehlen. In Elasticsearch können wir die geografische Standortaggregation nutzen, um Empfehlungen in der Nähe umzusetzen. Hier ist der Beispielcode, um anhand eines bestimmten geografischen Standorts nach Restaurants in der Nähe zu suchen und diese nach Entfernung zu sortieren:
$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);
Im obigen Beispiel verwenden wir den Sortierparameter _geo_distance
, um die Restaurants zu sortieren und geben an, dass die Sortiereinheit Kilometer sind.
Zusammenfassung:
Durch die kombinierte Verwendung von PHP und Elasticsearch können wir die Funktionen der geografischen Standortsuche und Umgebungsempfehlungen problemlos implementieren. Zuerst müssen wir einen Index mit einem Geolocation-Feld erstellen. Anschließend können wir Geolokalisierungsinformationen speichern und mithilfe von Geolokalisierungsparametern suchen. Für Empfehlungen in der Nähe können wir die Geolocation-Aggregationsfunktion verwenden und die Ergebnisse nach Entfernung sortieren. Das Obige ist der grundlegende Beispielcode. Sie können entsprechend den tatsächlichen Anforderungen entsprechende Änderungen vornehmen. Ich hoffe, dieser Artikel hilft Ihnen zu verstehen und zu lernen, wie Sie die Suche nach geografischen Standorten und Umgebungsempfehlungen mithilfe von Elasticsearch in PHP implementieren.
Das obige ist der detaillierte Inhalt vonElasticsearch in PHP implementiert die Suche nach geografischen Standorten und umliegenden Empfehlungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!