recherche
Maisondéveloppement back-endtutoriel phpRecherche géospatiale avec Solr et Solarium

Cet article plonge dans la recherche géospatiale dans Apache Solr et son interaction avec la bibliothèque Solarium PHP. Solr, un puissant service de recherche, propose des fonctionnalités telles que la recherche à facettes et la mise en évidence des résultats. Le solarium simplifie l'intégration SOLR dans les applications PHP. Cet article se concentre sur les capacités de recherche géospatiale, cruciale pour les requêtes basées sur la localisation dans des secteurs comme l'immobilier et la logistique.

Geospatial Search with SOLR and Solarium

Concepts clés:

  • Recherches basées sur la localisation: solr et solarium permettent des recherches efficaces de documents dans un rayon spécifié d'un point donné.
  • Configuration du schéma: La mise en œuvre de la recherche géospatiale nécessite des ajustements pour Solr schema.xml, y compris la définition d'un type de champ location avec des sous-champs de latitude et de longitude.
  • Rôle du solarium: La bibliothèque de solarium simplifie la construction de la requête géospatiale, l'abstraction de la syntaxe complexe SOLR. Il fournit des fonctions d'assistance pour le filtrage à distance et le tri de proximité.
  • Exemple d'application: Une démonstration pratique présente la recherche d'aéroports à proximité à l'aide de SOLR et de solarium, illustrant la configuration du schéma, l'attribution des données et la fonctionnalité de recherche.
  • Optimisation des performances: Des techniques comme l'utilisation du filtre "BBOX" (plus rapide, moins précis) ou le type de champ "RPT" (haute performance pour les grands ensembles de données) améliorent l'efficacité de recherche géospatiale.

La recherche géospatiale a expliqué:

La recherche géospatiale répond à la nécessité de rechercher des éléments situés géographiquement. Trouver des "restaurants italiens" est utile, mais spécifier des "restaurants italiens à moins de 5 miles" ajoute un contexte crucial. Cela implique d'utiliser des coordonnées de latitude et de longitude pour définir des points sur le globe.

L'exemple d'application utilise trois méthodes pour déterminer l'origine de la recherche: géolocalisation HTML5 (emplacement basé sur le navigateur), une liste prédéfinie des villes et une entrée de latitude manuelle / longitude.

Configuration du schéma:

Activer les capacités géospatiales dans SOLR nécessite des modifications à schema.xml. Un type de champ location est ajouté en utilisant la classe solr.LatLonType, avec la latitude et la longitude comme sous-champs (tdouble type). Un champ correspondant (par exemple, latlon) est défini pour stocker les données de localisation, et un champ dynamique gère les composants de latitude et de longitude. Un exemple schema.xml est inclus dans le référentiel de l'application exemple.

attribuer des données de localisation:

Les données de localisation sont attribuées au format {latitude},{longitude}. En utilisant le solarium, cela est réalisé avec: $doc->latlon = doubleval($latitude) . "," . doubleval($longitude);

requêtes géospatiales avec le solarium:

Les aides de Solarium simplifient la création de requête. Un filtre de distance est ajouté en utilisant $helper->geofilt(), spécifiant le champ, la latitude, la longitude et la distance. L'assistance geodist() calcule les distances et les alias (par exemple, _distance_) aident à récupérer les distances dans les résultats. Le tri par distance est effectué en utilisant $query->setQuery('{!func}' . $helper->geodist(...)) et $query->addSort('score', 'asc');.

Exemple d'application:

Le référentiel GitHub fourni (lien omis pour la concision) contient une application SILEX et BIGE présentant une recherche géospatiale pour les aéroports voisins à l'aide de données d'OpenFlights.org. Le script de population de données est également inclus. L'application dispose d'un formulaire de recherche avec des options d'entrée de localisation (géolocalisation, sélection de la ville, entrée manuelle) et sélection de distance. Les résultats de la recherche affichent les noms, les villes, les pays et les distances des aéroports.

Conclusion:

Cet article fournit un guide complet de mise en œuvre de la recherche géospatiale à l'aide de SOLR et de solarium. L'exemple d'application présente la mise en œuvre pratique et montre comment combiner des recherches textuelles et géospatiales pour des résultats plus raffinés.

Questions fréquemment posées (FAQ): (La section FAQ d'origine est conservée dans son intégralité car elle fournit des informations supplémentaires précieuses.)

Quelle est la signification de la recherche géospatiale dans le solr et le solarium?

Comment SOLR gère-t-il les données géospatiales?

Comment puis-je effectuer une recherche géospatiale dans le solarium?

Quelle est la différence entre les filtres «géofilt» et «bbox» dans le solarium?

Comment puis-je trier les documents par distance dans Solr?

Puis-je effectuer une recherche géospatiale sur plusieurs champs de Solr?

Comment puis-je améliorer les performances de la recherche géospatiale dans Solr?

Quel est le rôle du "SpatialRecursivePrefixTreeFieldType" dans Solr?

Comment SOLR gère-t-il les champs de localisation à valeur multiple?

Puis-je utiliser la recherche géospatiale avec d'autres types de recherche dans Solr?

Les réponses à ces FAQ sont incluses dans l'entrée d'origine et ne sont pas répétées ici par concision.

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
11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)11 meilleurs scripts de raccourcissement d'URL PHP (gratuit et premium)Mar 03, 2025 am 10:49 AM

Les longues URL, souvent encombrées de mots clés et de paramètres de suivi, peuvent dissuader les visiteurs. Un script de raccourcissement d'URL offre une solution, créant des liens concis idéaux pour les médias sociaux et d'autres plateformes. Ces scripts sont utiles pour les sites Web individuels

Travailler avec les données de session Flash dans LaravelTravailler avec les données de session Flash dans LaravelMar 12, 2025 pm 05:08 PM

Laravel simplifie la gestion des données de session temporaires à l'aide de ses méthodes de flash intuitives. Ceci est parfait pour afficher de brefs messages, alertes ou notifications dans votre application. Les données ne persistent que pour la demande ultérieure par défaut: $ demande-

Construisez une application React avec un Laravel Back End: Partie 2, ReactConstruisez une application React avec un Laravel Back End: Partie 2, ReactMar 04, 2025 am 09:33 AM

Il s'agit de la deuxième et dernière partie de la série sur la construction d'une application React avec un back-end Laravel. Dans la première partie de la série, nous avons créé une API RESTful utilisant Laravel pour une application de liste de base sur le produit. Dans ce tutoriel, nous serons Dev

Misque de réponse HTTP simplifié dans les tests LaravelMisque de réponse HTTP simplifié dans les tests LaravelMar 12, 2025 pm 05:09 PM

Laravel fournit une syntaxe de simulation de réponse HTTP concise, simplifiant les tests d'interaction HTTP. Cette approche réduit considérablement la redondance du code tout en rendant votre simulation de test plus intuitive. L'implémentation de base fournit une variété de raccourcis de type de réponse: Utiliser illuminate \ support \ faades \ http; Http :: faux ([[ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Curl dans PHP: Comment utiliser l'extension PHP Curl dans les API RESTCurl dans PHP: Comment utiliser l'extension PHP Curl dans les API RESTMar 14, 2025 am 11:42 AM

L'extension PHP Client URL (CURL) est un outil puissant pour les développeurs, permettant une interaction transparente avec des serveurs distants et des API REST. En tirant parti de Libcurl, une bibliothèque de transfert de fichiers multi-protocol très respectée, PHP Curl facilite Efficient Execu

12 meilleurs scripts de chat PHP sur Codecanyon12 meilleurs scripts de chat PHP sur CodecanyonMar 13, 2025 pm 12:08 PM

Voulez-vous fournir des solutions instantanées en temps réel aux problèmes les plus pressants de vos clients? Le chat en direct vous permet d'avoir des conversations en temps réel avec les clients et de résoudre leurs problèmes instantanément. Il vous permet de fournir un service plus rapide à votre personnalité

Annonce de l'enquête sur la situation en 2025 PHPAnnonce de l'enquête sur la situation en 2025 PHPMar 03, 2025 pm 04:20 PM

L'enquête sur le paysage PHP 2025 étudie les tendances actuelles de développement du PHP. Il explore l'utilisation du cadre, les méthodes de déploiement et les défis, visant à fournir des informations aux développeurs et aux entreprises. L'enquête prévoit la croissance de la PHP moderne versio

Notifications à LaravelNotifications à LaravelMar 04, 2025 am 09:22 AM

Dans cet article, nous allons explorer le système de notification dans le framework Web Laravel. Le système de notification de Laravel vous permet d'envoyer des notifications aux utilisateurs sur différents canaux. Aujourd'hui, nous discuterons de la façon dont vous pouvez envoyer des notifications OV

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

MantisBT

MantisBT

Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)