ホームページ  >  記事  >  バックエンド開発  >  CakePHP で Solr を使用するにはどうすればよいですか?

CakePHP で Solr を使用するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-06-03 15:10:361300ブラウズ

ビッグ データ時代の到来に伴い、検索エンジンの開発はますます成熟しており、Apache Lucene 検索エンジンの拡張機能としての Solr は、エンタープライズ レベルの検索エンジンの最初の選択肢となっています。 CakePHP で Solr を使用すると、Web 開発の検索機能が向上します。この記事では、CakePHP で Solr を使用する方法を紹介します。

1.Solr とは何ですか?
Solr は、Lucene 検索エンジンを使用し、分散検索、逆インデックス、スペル チェック、その他の機能などの豊富な機能を提供するオープン ソースのエンタープライズ レベルの検索プラットフォームです。 Solr は、ドキュメント、PDF、Word、その他の種類のファイルのインデックス付けと検索が可能で、さまざまなデータ ソースの検索も可能で、RESTful インターフェイス、JSON、XML、その他の形式でのデータ インタラクションをサポートします。

2. Solr を使用する理由?
Solr は、その安定性、高性能、使いやすさにより、開発者や企業に好まれています。 Solr を使用すると、検索効率を大幅に最適化し、データ取得の精度と速度を向上させ、複数のデータ ソースからの検索をサポートできます。データの処理と分析の点では、Solr はより強力な統合サポートも備えており、データ コールバックやその他の拡張機能をサポートしています。エンタープライズレベルのアプリケーションシナリオで Solr を使用すると、その利点が最大限に発揮されます。

3. CakePHP と Solr の統合
CakePHP は、MVC 設計パターンに基づく高性能 PHP フレームワークであり、開発者が高品質の Web アプリケーションを迅速に構築するのに役立ちます。 CakePHP に Solr を統合すると、検索機能を簡単に実装でき、より効率的で安全かつスケーラブルな Web アプリケーションを実現できます。

1. Solr をインストールします
Solr 公式 Web サイトに移動し、対応するバージョンの Solr をダウンロードして解凍し、ターミナルで Solr ルート ディレクトリに入り、コマンドを入力して Solr を起動します。

2. Solr スキーマの作成
Solr ルート ディレクトリで、次のファイルを見つけます:

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

これら 2 つのファイルには、Solr インデックスに含める必要があるメタデータとフィールド定義が含まれています。アプリケーションで必要な場合は、Solr を独自の特定のパターンと統合できます。所定の形式に従って schema.xml ファイルにフィールドを定義するだけで、検索が可能になります。このコードを参照して、独自の schema.xml ファイルを作成できます。

3. CakePHP Solr プラグインをインストールします
Composer コマンドを使用して Solr プラグインをインストールします:

composer require markstory/solr

現時点では, CakePHP は Solr を使用する準備ができています。

4. CakePHP で Solr ソースを作成します
対応するモデルで、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. CakePHP モデルで Solr ソースを使用します
対応するモデル、initialize() メソッドで Solr ソースを設定します:

<?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. 検索を実行します
検索を実行する必要があるコントローラーで、モデルを通じて対応する Solr ソースをインスタンス化し、検索条件を設定します:

<?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'));
    }
}

を実行します。上記はSolrの統合プロセスです。統合プロセスでは、Solrの検索ソースを構成し、検索モデルを設定し、最後に検索を実行する必要があります。

4. Solr の使用スキル
1. Solr の検索構文
Solr の検索構文は Lucene に似ており、* および ? ワイルドカード、AND および OR 論理演算子、および and- プレフィックスなどを使用できます。オペレーターは好きです。

2. Solr の検索プロンプト
Solr は、ユーザーの検索効率を最適化するために、ユーザーの検索用語に基づいて関連する提案を自動的に表示する検索プロンプト機能も提供します。

3. Solr のデータ分析と処理
Solr では、ユーザーは検索データを迅速に分析および処理できるため、より効率的なデータ管理と処理が実現し、エンタープライズ アプリケーションの価値と処理が向上します。

概要
Solr を使用すると、検索効率が向上し、より効率的で安全かつスケーラブルな Web アプリケーションを実現できます。 CakePHP で Solr を使用するには、Solr の検索ソースを設定し、検索モデルを設定し、最後に検索を実行する必要があります。 Solr は、検索プロンプト、データ分析、その他の機能も提供し、エンタープライズ レベルのアプリケーションの開発にさらなるサポートと利点をもたらします。

以上がCakePHP で Solr を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。