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
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.
Buat indeks baharu
PUT /my_index
Tambah data ujian
POST /my_index/_doc { "title": "Elasticsearch入门指南", "author": "张三", "content": "本文介绍了Elasticsearch的基本概念和使用方法。" } POST /my_index/_doc { "title": "PHP和Elasticsearch的集成", "author": "李四", "content": "本文讲解了如何使用PHP和Elasticsearch构建一个简单而高效的搜索功能。" }
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.
Pasang pustaka pelanggan Elasticsearch
composer require elasticsearch/elasticsearch
Buat fail PHP dan perkenalkan perpustakaan pelanggan Elasticsearch
require 'vendor/autoload.php'; use ElasticsearchClientBuilder;
3. Tulis kod carian PHP
Seterusnya untuk melaksanakan, kami akan mencari kod operasi PHP. Mencapai pengalaman carian yang dimanusiakan.
Sambung ke Elasticsearch
$client = ClientBuilder::create()->build();
Lakukan operasi carian
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'content' => 'Elasticsearch' ] ] ] ]; $response = $client->search($params);
Proses hasil carian
foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . ' - ' . $hit['_source']['author'] . "<br>"; // 输出:Elasticsearch入门指南 - 张三 // 输出:PHP和Elasticsearch的集成 - 李四 }
4. Tingkatkan fungsi carian
from
dan size
Elasticsearch untuk melaksanakan fungsi halaman. Ubah suai kod parameter carian seperti berikut: $params = [ 'index' => 'my_index', 'body' => [ 'from' => 0, 'size' => 10, 'query' => [ 'match' => [ 'content' => 'Elasticsearch' ] ] ] ]; $response = $client->search($params);
from
和size
参数来实现分页功能。修改搜索参数代码如下:
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'content' => 'Elasticsearch' ] ], 'highlight' => [ 'fields' => [ 'content' => new stdClass() ] ] ] ]; $response = $client->search($params);
高亮显示搜索关键字
为了提高搜索结果的可读性,我们可以使用Elasticsearch的高亮功能来高亮显示搜索关键字。修改搜索参数代码如下:
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'content' => 'Elasticsearch' ] ], 'sort' => [ 'title' => 'asc' // 按标题升序排序 ] ] ]; $response = $client->search($params);
排序功能
如果搜索结果需要按照特定的字段进行排序,我们可以使用Elasticsearch的sort
Serlahkan kata kunci carian
Fungsi Isih
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!