ホームページ >バックエンド開発 >PHPチュートリアル >ElasticsearchをDrupalとインストールして統合します

ElasticsearchをDrupalとインストールして統合します

Joseph Gordon-Levitt
Joseph Gordon-Levittオリジナル
2025-02-18 11:43:08177ブラウズ

高性能DRUPAL 7アプリケーションのためのElasticsearchのレバレッジエラスティクスサーチ:2部構成のチュートリアル

このチュートリアルでは、Drupal 7を高性能アプリケーション用のCMSとして使用して、ElasticsearchとSilex PHP Microframeworkを統合して検討しています。 目標は、組み合わせた能力を示す概念の証明です。 添付のGITリポジトリは、完全なコードを提供します(以下のリンクを参照)。 Drupal、Elasticsearch、およびSilexに精通していることをお勧めします

チュートリアルは2つの部分に分かれています

パート1:Elasticsearch and Drupal統合

このセクションでは、ElasticSearchのセットアップと、ElasticSearch内でノードデータを管理するためのカスタムDrupalモジュールの作成について説明します。

elasticsearchセットアップ:

elasticsearch(Linux命令が提供されています)をインストールします。 重要なのは、外部アクセスを制限して動的スクリプトを無効にするために、構成ファイルに

および
    を設定することにより、セキュリティ用のElasticSearchを構成します。
  1. ElasticSearchコネクタモジュールとのDRUPAL統合ElasticSearchコネクタDRUPALモジュールをインストールおよび有効にします。 これにより、カスタムモジュール内でアクセスできるElasticSearchクライアントオブジェクトラッパーが提供されます。 network.bind_host: localhost script.disable_dynamic: trueクラスターのDrupalマシン名(admin/config/elasticsearch-connector/clustersで見つかった)に

    を置き換えます。
  2. データの挿入(hook_node_insert):

    <code class="language-php">$client = elastic_connector_get_client_by_id('my_cluster_id');</code>

    を備えたカスタムモジュール(「弾性」)は、新しいノードをElasticSearchに保存します。 以下の例では、ヘルパー関数'my_cluster_id'を使用してノードデータをフォーマットします。

  3. データの更新(hook_node_update):hook_node_insert()elasticsearchがノードの変更を反映することを保証します。 更新する前にノードを見つけるために_elastic_prepare_node()を使用して、並行性制御のためにドキュメントバージョンを活用します:

    <code class="language-php">function elastic_node_insert($node) {
      $client = elasticsearch_connector_get_client_by_id('my_cluster_id');
      $params = _elastic_prepare_node($node);
      // ... (error handling and indexing logic) ...
    }</code>
  4. データ(hook_node_delete)の削除:hook_node_update()Drupalで削除されたときにElasticsearchからノードを削除します。 対応するドキュメントを見つけて削除するには、_elastic_perform_node_search_by_id()を使用します。

    <code class="language-php">function elastic_node_update($node) {
      // ... (logic to update node in Elasticsearch) ...
    }</code>
  5. 検証:>一時的にリモートアクセスを許可します(ローカル開発のみ!)ブラウザから直接HTTPリクエストを作成して、ElasticSearchの母集団をテストすることができます(例:)。 その後、セキュリティの制限を再度に容易にすることを忘れないでください。 hook_node_delete() _elastic_perform_node_search_by_id()

    パート2:Silexアプリケーション(チュートリアルの次の部分でカバーする) Install and Integrate Elasticsearch with Drupal

    gitリポジトリ:[gitリポジトリリンクをこちらに挿入]

    よくある質問(FAQ):

    (FAQは元の入力からほとんど変化しておらず、トラブルシューティング、古いDrupalバージョンとの互換性、パフォーマンスの最適化、セキュリティ、マルチサイトサポート、カスタムフィールドインデックス、ファセット検索、Drupal Commerce Integration、Performance Monitoring、Multilingual Content Content取り扱い。)

    この改訂された出力は、元のコンテンツの意味を維持しながら、テキストを再構築して、明確さと流れを改善します。 また、より簡潔なフレージングと見出しを使用します。 画像は元の形式と場所のままです

以上がElasticsearchをDrupalとインストールして統合しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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