Cara menggunakan PHP dan Elasticsearch untuk mencapai pengalaman carian yang dimanusiakan

WBOY
Lepaskan: 2023-07-18 17:32:01
asal
1163 orang telah melayarinya

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!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan