Rumah pembangunan bahagian belakang tutorial php Cara menggunakan PHP dan Elasticsearch untuk mencapai pengalaman carian yang dimanusiakan

Cara menggunakan PHP dan Elasticsearch untuk mencapai pengalaman carian yang dimanusiakan

Jul 18, 2023 pm 05:31 PM
php elasticsearch Pencarian manusiawi

Cara menggunakan PHP dan Elasticsearch untuk mencapai pengalaman carian yang dimanusiakan

Pengenalan:
Dalam era ledakan maklumat hari ini, fungsi carian yang cekap telah menjadi penting untuk tapak web dan aplikasi. Elasticsearch ialah enjin carian sumber terbuka yang berkuasa yang pantas, berskala dan fleksibel serta telah digunakan secara meluas dalam pelbagai senario. PHP ialah bahasa pembangunan yang digunakan secara meluas yang menyediakan banyak alatan dan perpustakaan untuk berinteraksi dengan Elasticsearch, yang boleh membantu kami mencapai pengalaman carian yang dimanusiakan. Artikel ini akan menerangkan cara menggunakan PHP dan Elasticsearch untuk membina fungsi carian yang mudah dan cekap.

1 Pasang dan sediakan Elasticsearch
Pertama, kita perlu memasang Elasticsearch pada pelayan tempatan atau jauh. Untuk langkah pemasangan khusus, sila rujuk dokumentasi rasmi Elasticsearch. Selepas pemasangan selesai, kita perlu mencipta indeks baharu dan menambah beberapa data ujian.

  1. Buat indeks baharu

    PUT /my_index
    Salin selepas log masuk
  2. Tambah data ujian

    POST /my_index/_doc
    {
      "title": "Elasticsearch入门指南",
      "author": "张三",
      "content": "本文介绍了Elasticsearch的基本概念和使用方法。"
    }
    
    POST /my_index/_doc
    {
      "title": "PHP和Elasticsearch的集成",
      "author": "李四",
      "content": "本文讲解了如何使用PHP和Elasticsearch构建一个简单而高效的搜索功能。"
    }
    Salin selepas log masuk

2. Pasang dan konfigurasikan persekitaran pembangunan PHP
Sebelum kita mula menulis kod PHP, kita perlu memastikan bahawa persekitaran PHP telah dipasang dan dikonfigurasikan dengan betul dengan Sambungan yang diperlukan untuk interaksi Elasticsearch.

  1. Pasang pustaka pelanggan Elasticsearch

    composer require elasticsearch/elasticsearch
    Salin selepas log masuk
  2. Buat fail PHP dan perkenalkan perpustakaan pelanggan Elasticsearch

    require 'vendor/autoload.php';
    use ElasticsearchClientBuilder;
    Salin selepas log masuk

3. Tulis kod carian PHP
Seterusnya untuk melaksanakan, kami akan mencari kod operasi PHP. Mencapai pengalaman carian yang dimanusiakan.

  1. Sambung ke Elasticsearch

    $client = ClientBuilder::create()->build();
    Salin selepas log masuk
  2. Lakukan operasi carian

    $params = [
      'index' => 'my_index',
      'body'  => [
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ]
      ]
    ];
    
    $response = $client->search($params);
    Salin selepas log masuk
  3. Proses hasil carian

    foreach ($response['hits']['hits'] as $hit) {
     echo $hit['_source']['title'] . ' - ' . $hit['_source']['author'] . "<br>";
     // 输出:Elasticsearch入门指南 - 张三
     // 输出:PHP和Elasticsearch的集成 - 李四
    }
    Salin selepas log masuk

4. Tingkatkan fungsi carian

    Jika hasil carian mengandungi berbilang halaman, kami boleh Gunakan parameter from dan size Elasticsearch untuk melaksanakan fungsi halaman. Ubah suai kod parameter carian seperti berikut:
  1. $params = [
      'index' => 'my_index',
      'body' => [
     'from' => 0,
     'size' => 10,
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ]
      ]
    ];
    
    $response = $client->search($params);
    Salin selepas log masuk


    fromsize参数来实现分页功能。修改搜索参数代码如下:

    $params = [
      'index' => 'my_index',
      'body'  => [
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ],
     'highlight' => [
       'fields' => [
         'content' => new stdClass()
       ]
     ]
      ]
    ];
    $response = $client->search($params);
    Salin selepas log masuk
  2. 高亮显示搜索关键字
    为了提高搜索结果的可读性,我们可以使用Elasticsearch的高亮功能来高亮显示搜索关键字。修改搜索参数代码如下:

    $params = [
      'index' => 'my_index',
      'body'  => [
     'query' => [
       'match' => [
         'content' => 'Elasticsearch'
       ]
     ],
     'sort' => [
       'title' => 'asc' // 按标题升序排序
     ]
      ]
    ];
    $response = $client->search($params);
    Salin selepas log masuk
  3. 排序功能
    如果搜索结果需要按照特定的字段进行排序,我们可以使用Elasticsearch的sortSerlahkan kata kunci carian

    Untuk meningkatkan kebolehbacaan hasil carian, kami boleh menggunakan fungsi penyerlahan Elasticsearch untuk menyerlahkan kata kunci carian. Ubah suai kod parameter carian seperti berikut:
  4. rrreee


Fungsi Isih

Jika hasil carian perlu diisih mengikut medan tertentu, kita boleh menggunakan parameter isih Elasticsearch untuk mencapai ini. Ubah suai kod parameter carian seperti berikut: 🎜rrreee🎜🎜🎜 5. Ringkasan🎜Artikel ini memperkenalkan cara menggunakan PHP dan Elasticsearch untuk mencapai pengalaman carian yang dimanusiakan. Kami menyediakan Elasticsearch dengan memasang, menyediakan dan menambah data ujian, kemudian mengodkan carian dalam PHP dan menambah baik pengalaman carian, termasuk kebolehan halaman, menyerlahkan dan menyusun. Saya harap artikel ini akan membantu pembangun yang ingin meningkatkan keupayaan carian mereka. 🎜

Atas ialah kandungan terperinci Cara menggunakan PHP dan Elasticsearch untuk mencapai pengalaman carian yang dimanusiakan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini 7 Fungsi PHP Saya Menyesal Saya Tidak Tahu Sebelum ini Nov 13, 2024 am 09:42 AM

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Jelaskan JSON Web Tokens (JWT) dan kes penggunaannya dalam PHP API. Apr 05, 2025 am 12:04 AM

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Terangkan pengikatan statik lewat dalam php (statik: :). Terangkan pengikatan statik lewat dalam php (statik: :). Apr 03, 2025 am 12:04 AM

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apakah kaedah Magic PHP (__construct, __destruct, __call, __get, __set, dll) dan menyediakan kes penggunaan? Apr 03, 2025 am 12:03 AM

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.

See all articles