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
Quelle est la meilleure façon d'envoyer un e-mail à l'aide de PHP?Quelle est la meilleure façon d'envoyer un e-mail à l'aide de PHP?May 08, 2025 am 12:21 AM

TheBestApproachforsendentemailsInphpisusingThephpmailerLibraryDuetOtsReliability, featturerichness, andeaseofuse.phpmailersupportssmtp, fournitdetaileDerrorHling

Meilleures pratiques pour l'injection de dépendance en PHPMeilleures pratiques pour l'injection de dépendance en PHPMay 08, 2025 am 12:21 AM

La raison de l'utilisation de l'injection de dépendance (DI) est qu'elle favorise le couplage lâche, la testabilité et la maintenabilité du code. 1) Utiliser le constructeur pour injecter les dépendances, 2) Éviter d'utiliser les localisateurs de services, 3) Utiliser les conteneurs d'injection de dépendance pour gérer les dépendances, 4) Améliorer la testabilité par l'injection des dépendances, 5) Évitez les dépendances de sur-injection, 6) Considérez l'impact des performances de DI.

Conseils et astuces de réglage des performances PHPConseils et astuces de réglage des performances PHPMay 08, 2025 am 12:20 AM

PhpperformanceTUningiscrucialBecauseiTenHanceSpEedAndEfficiency, qui arevitalforwebapplications.1) cachingwithapruceducesdatabaseloadandixprovesesweponshets.2) OptimizingDatabasequeriesByselectingNesseyColumsAnSingIndexPeedSupSupDatareTelevalin.

Sécurité des e-mails PHP: meilleures pratiques pour envoyer des e-mailsSécurité des e-mails PHP: meilleures pratiques pour envoyer des e-mailsMay 08, 2025 am 12:16 AM

ThebestpracticesforsendentemailsSécurelyInphpinclude: 1) usingSECureConfigurations withsmtpandstartTlSencryption, 2) valider andsanitizingInputStopreventInjectiondAttacks, 3) EncrytingSensiveDataWithinemailsusingOpenSSL, 4)

Comment optimiser les applications PHP pour les performances?Comment optimiser les applications PHP pour les performances?May 08, 2025 am 12:08 AM

Tooptizizephpapplications forperformance, usecaching, databaseoptimization, opcodécachement, andserverconfiguration.1) implémentcachingwithapcutoredatafetchtimes.2) optimizedatabasesbasesIndexing, équilibrage

Qu'est-ce que l'injection de dépendance en PHP?Qu'est-ce que l'injection de dépendance en PHP?May 07, 2025 pm 03:09 PM

Dépendance InjectionInphpisadessignPatterNTHaTenHancesFlexibility, testabilité et responsabilité par le suivi de l'Externet entendance.

Meilleures techniques d'optimisation des performances PHPMeilleures techniques d'optimisation des performances PHPMay 07, 2025 pm 03:05 PM

L'optimisation des performances PHP peut être obtenue via les étapes suivantes: 1) Utilisez require_once ou include_once en haut du script pour réduire le nombre de charges de fichiers; 2) Utiliser des instructions de prétraitement et un traitement par lots pour réduire le nombre de requêtes de base de données; 3) Configurer OPCACHE pour le cache OPCode; 4) Activer et configurer la gestion du processus d'optimisation PHP-FPM; 5) Utilisez CDN pour distribuer des ressources statiques; 6) Utiliser XDebug ou Blackfire pour l'analyse des performances du code; 7) Sélectionnez des structures de données efficaces telles que les tableaux; 8) Écrivez un code modulaire pour l'exécution d'optimisation.

Optimisation des performances PHP: Utilisation de la mise en cache d'opcodeOptimisation des performances PHP: Utilisation de la mise en cache d'opcodeMay 07, 2025 pm 02:49 PM

OPCODECACHINGSIGNIFICITIVEMENT ImproveSPhpperFormanceByCachingCompileDcode, ReduCingServerLoDoLan

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

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Dreamweaver Mac

Dreamweaver Mac

Outils de développement Web visuel

SublimeText3 Linux nouvelle version

SublimeText3 Linux nouvelle version

Dernière version de SublimeText3 Linux

mPDF

mPDF

mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) ​​et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire