Rumah >pembangunan bahagian belakang >tutorial php >Pasang dan mengintegrasikan Elasticsearch dengan Drupal

Pasang dan mengintegrasikan Elasticsearch dengan Drupal

Joseph Gordon-Levitt
Joseph Gordon-Levittasal
2025-02-18 11:43:08177semak imbas

Memanfaatkan Elasticsearch untuk Permohonan Drupal 7 Berprestasi Tinggi: Tutorial Dua Bahagian

Tutorial ini meneroka menggunakan Drupal 7 sebagai CMS untuk aplikasi berprestasi tinggi, mengintegrasikan Elasticsearch dan Silex PHP Microframework. Matlamatnya adalah bukti konsep yang menunjukkan keupayaan gabungan mereka. Repositori Git yang disertakan menyediakan kod lengkap (lihat pautan di bawah). Kebiasaan dengan Drupal, Elasticsearch, dan Silex disyorkan.

Tutorial dibahagikan kepada dua bahagian:

Bahagian 1: Integrasi Elasticsearch dan Drupal

Bahagian ini merangkumi menubuhkan Elasticsearch dan mencipta modul Drupal tersuai untuk menguruskan data nod dalam Elasticsearch.

  1. Persediaan elasticsearch elasticsearch:

    Pasang Elasticsearch (arahan Linux disediakan). Secara kritis, konfigurasikan Elasticsearch untuk keselamatan dengan menetapkan dan dalam fail konfigurasi untuk menyekat akses luaran dan melumpuhkan skrip dinamik. network.bind_host: localhost script.disable_dynamic: true

  2. Integrasi Drupal dengan modul penyambung Elasticsearch:

    Pasang dan aktifkan modul penyambung Elasticsearch Drupal. Ini menyediakan pembungkus objek klien Elasticsearch yang boleh diakses dalam modul tersuai anda:

    Ganti
    <code class="language-php">$client = elastic_connector_get_client_by_id('my_cluster_id');</code>
    dengan nama mesin Drupal cluster anda (terdapat di admin/config/elasticsearch-connector/clusters).

    'my_cluster_id'

  3. Memasukkan data (HOOK_NODE_INSERT):

    Modul tersuai (mis., "Elastik") dengan menjimatkan nod baru ke Elasticsearch. Contoh di bawah menggunakan fungsi penolong untuk memformat data nod: hook_node_insert() _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. Mengemas kini data (HOOK_NODE_UPDATE):

    Memastikan Elasticsearch mencerminkan perubahan nod. Ia menggunakan untuk mencari nod sebelum mengemas kini, memanfaatkan versi dokumen untuk kawalan konvensyen: hook_node_update() _elastic_perform_node_search_by_id()

    <code class="language-php">function elastic_node_update($node) {
      // ... (logic to update node in Elasticsearch) ...
    }</code>
  5. Menghapus data (HOOK_NODE_DELETE):

    Mengeluarkan nod dari Elasticsearch apabila dipadamkan di Drupal. Ia menggunakan untuk mencari dan memadam dokumen yang sepadan: hook_node_delete() _elastic_perform_node_search_by_id()

    <code class="language-php">function elastic_node_delete($node) {
      // ... (logic to delete node from Elasticsearch) ...
    }</code>
  6. Pengesahan:

    buat sementara waktu membenarkan akses jauh (untuk pembangunan tempatan sahaja!) Untuk menguji penduduk Elasticsearch dengan membuat permintaan HTTP terus dari penyemak imbas anda (mis., ). Ingatlah untuk mengaktifkan semula sekatan keselamatan selepas itu. http://localhost:9200/node/_search

Bahagian 2: Permohonan Silex (yang akan dilindungi di bahagian seterusnya tutorial)

Bahagian ini akan terperinci membuat aplikasi Silex untuk mengambil dan memaparkan data terus dari Elasticsearch, melangkaui Drupal.

Install and Integrate Elasticsearch with Drupal

repositori git: [masukkan pautan repositori git di sini]

Soalan Lazim (Soalan Lazim):

(Soalan Lazim kekal sebahagian besarnya tidak berubah dari input asal, menangani masalah penyelesaian masalah, keserasian dengan versi drupal yang lebih tua, pengoptimuman prestasi, keselamatan, sokongan multisit pengendalian.) Output yang disemak ini mengekalkan makna kandungan asal semasa menyusun semula teks untuk kejelasan dan aliran yang lebih baik. Ia juga menggunakan lebih banyak ungkapan dan tajuk ringkas. Imej kekal dalam format dan lokasi asalnya.

Atas ialah kandungan terperinci Pasang dan mengintegrasikan Elasticsearch dengan Drupal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn