Maison  >  Article  >  développement back-end  >  Comment utiliser Solr avec CakePHP ?

Comment utiliser Solr avec CakePHP ?

WBOY
WBOYoriginal
2023-06-03 15:10:361259parcourir

Avec l'avènement de l'ère du big data, le développement des moteurs de recherche est devenu de plus en plus mature. Solr, en tant qu'extension du moteur de recherche Apache Lucene, est devenu le premier choix pour les moteurs de recherche au niveau de l'entreprise. L'utilisation de Solr dans CakePHP peut fournir de meilleures capacités de recherche pour le développement Web. Cet article explique comment utiliser Solr dans CakePHP.

1. Qu'est-ce que Solr ?
Solr est une plate-forme de recherche open source au niveau de l'entreprise qui utilise le moteur de recherche Lucene et fournit des fonctionnalités riches, telles que la recherche distribuée, l'index inversé, la vérification orthographique et d'autres fonctions. Solr peut indexer et rechercher des documents, PDF, Word et d'autres types de fichiers. Il peut également rechercher différentes sources de données et prend en charge l'interaction des données dans les interfaces RESTful, JSON, XML et d'autres formats.

2. Pourquoi utiliser Solr ?
Solr est privilégié par les développeurs et les entreprises en raison de sa stabilité, de ses hautes performances et de sa facilité d'utilisation. Grâce à Solr, vous pouvez optimiser considérablement l'efficacité de la recherche, améliorer la précision et la vitesse de récupération des données et prendre en charge les recherches à partir de plusieurs sources de données. En termes de traitement et d'analyse des données, Solr dispose également d'un support d'intégration plus puissant, prenant en charge les rappels de données et d'autres fonctions étendues. L'utilisation de Solr dans des scénarios d'application au niveau de l'entreprise permettra de tirer pleinement parti de ses avantages.

3. Intégration de CakePHP et Solr
CakePHP est un framework PHP hautes performances basé sur le modèle de conception MVC, qui peut aider les développeurs à créer rapidement des applications Web de haute qualité. Une fois que CakePHP a intégré Solr, il peut facilement implémenter des fonctions de recherche et réaliser des applications Web plus efficaces, sécurisées et évolutives.

1. Installez Solr
Allez sur le site officiel de Solr, téléchargez la version correspondante de Solr, décompressez-la et entrez dans le répertoire racine de Solr dans le terminal, entrez la commande pour démarrer Solr.

2. Créer un schéma Solr
Dans le répertoire racine de Solr, recherchez les fichiers suivants :

./solr/example/solr/configsets/basic_configs/conf/managed-schema ./solr/example/solr/configsets/basic_configs/ conf/schema.xml

Ces deux fichiers contiennent les métadonnées et les définitions de champs que l'index Solr doit contenir. Solr peut être intégré à nos propres modèles spécifiques si l'application l'exige. Il suffit de définir les champs dans le fichier schema.xml selon le format prescrit, puis nous pouvons effectuer une recherche. Vous pouvez vous référer à ce code pour créer votre propre fichier schema.xml.

3. Installez le plug-in CakePHP Solr
Utilisez la commande Composer pour installer le plug-in Solr :

composer requiremarkstory/solr

À ce stade, CakePHP est prêt à utiliser Solr.

4. Créez la source Solr dans CakePHP
Dans le modèle correspondant, créez la source de recherche Solr :

<?php
namespace AppModelDataSource;
use CakeDatasourceConnectionInterface;
use CakeDatasourceDataSource;
use CakeHttpClient;
class Solr extends DataSource {
    protected $_client;
    protected $_config;
    public function __construct($config = []) {
        parent::__construct($config);
        $this->_config = $config;
        $this->_client = new Client([
            'headers' => ['Accept' => 'application/json'],
            'auth' => [
                'username' => $this->_config['username'],
                'password' => $this->_config['password']
            ]
        ]);
    }
    public function listSources($data = null) {
        return true;
    }
    public function describe($model) {
        if (!isset($this->_schema[$model->table])) {
            $this->_loadSchema($model);
        }
        return $this->_schema[$model->table];
    }
    public function connect() {
        return true;
    }
    public function disconnect() {
        return true;
    }
    public function query($conditions, $asContain = false) {
        // Code removed for brevity //
    }
}

5 Utilisez la source Solr dans le modèle CakePHP
Dans le modèle correspondant, définissez Solr dans la méthode initialize() Source :

<?php
namespace AppModelSearch;
use CakeDatasourceConnectionManager;
use CakeDatasourceResultSetInterface;
use CakeLogLog;
use CakeORMQuery;
use CakeORMTable;
class ArticlesTable extends Table {
    public $useTable = false;
    public function initialize(array $config) {
        parent::initialize($config);
        $this->setPrimaryKey('id');
        $this->setSchema([
            'title' => ['type' => 'string'],
            'body' => ['type' => 'string'],
            'modified' => ['type' => 'date']
        ]);
        $this->addBehavior('Solr');
        $this->setSolr('main', [
            'className' => 'Solr',
            'server' => 'localhost:8983/solr/gettingstarted',
            'username' => 'solr',
            'password' => 'SolrRocks'
        ]);
    }
}
.

6. Exécuter la recherche
Dans le contrôleur qui doit effectuer la recherche, instanciez la source Solr correspondante via le modèle, définissez les conditions de recherche et exécutez :

<?php
use AppModelSearchArticlesTable;
class ArticlesController extends AppController {
    public function search() {
        $articlesTable = new ArticlesTable();
        $articles = $articlesTable->find()
            ->select(['title', 'body', 'modified'])
            ->where(['title LIKE' => '%sphinx%'])
            ->order(['created' => 'DESC']);
        $this->set(compact('articles'));
    }
}

Ce qui précède est le processus d'intégration de Solr. Pendant le processus d'intégration, une configuration est requise. Source de recherche de Solr, définissez le modèle de recherche et enfin effectuez la recherche.

4. Conseils pour utiliser Solr
1. La syntaxe de recherche de Solr
La syntaxe de recherche de Solr est similaire à celle de Lucene. Vous pouvez utiliser les caractères génériques * et ?, les opérateurs logiques AND et OR et les opérateurs de préfixe tels que + et -.

2. Invites de recherche de Solr
Solr fournit également une fonction d'invite de recherche, qui présente automatiquement des suggestions pertinentes basées sur les termes de recherche de l'utilisateur pour aider les utilisateurs à optimiser l'efficacité de la recherche.

3. Analyse et traitement des données de Solr
Dans Solr, les utilisateurs peuvent analyser et traiter rapidement les données de recherche, obtenant ainsi une gestion et un traitement des données plus efficaces et améliorant la valeur et la praticité des applications d'entreprise.

Résumé
L'utilisation de Solr peut améliorer l'efficacité de la recherche et créer des applications Web plus efficaces, sécurisées et évolutives. Pour utiliser Solr dans CakePHP, vous devez configurer la source de recherche de Solr, définir le modèle de recherche et enfin effectuer la recherche. Solr fournit également des invites de recherche, des analyses de données et d'autres fonctions, apportant davantage de support et d'avantages au développement d'applications au niveau de l'entreprise.

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