Rumah > Artikel > pembangunan bahagian belakang > Paparan hasil carian dan teknologi penyesuaian berdasarkan Elasticsearch dalam PHP
Paparan hasil carian dan teknologi penyesuaian berdasarkan Elasticsearch dalam PHP
Pengenalan:
Dalam era Internet moden, fungsi carian adalah bahagian penting dalam laman web dan aplikasi. Cara cepat dan tepat memaparkan hasil yang pengguna inginkan melalui enjin carian sentiasa menjadi cabaran yang dihadapi oleh pembangun. Elasticsearch ialah enjin carian teks penuh yang diedarkan sumber terbuka yang popular secara meluas dalam kalangan pembangun kerana keupayaan carian dan analisisnya yang berprestasi tinggi. Artikel ini akan memperkenalkan paparan hasil carian berasaskan Elasticsearch dan teknologi penyesuaian dalam PHP, dan memberikan contoh kod khusus.
1. Pemasangan dan konfigurasi Elasticsearch
Pertama, kita perlu memasang dan memulakan Elasticsearch. Anda boleh memuat turun versi stabil terkini dari laman web rasmi Elasticsearch (https://www.elastic.co/), dan pasang serta konfigurasikannya mengikut dokumentasi rasmi.
2. Pustaka pelanggan Elasticsearch PHP
Dalam PHP, kami boleh menggunakan perpustakaan pelanggan Elasticsearch yang disediakan secara rasmi untuk berinteraksi dengan Elasticsearch. Anda boleh menggunakan Komposer untuk memasang:
composer require elasticsearch/elasticsearch
Selepas pemasangan selesai, anda boleh memperkenalkan perpustakaan klien Elasticsearch ke dalam projek:
require 'vendor/autoload.php'; use ElasticsearchClientBuilder;
3. Buat indeks dan dokumen
Sebelum memulakan carian, kita perlu mencipta indeks dan tambahkan beberapa dokumen ke tengah Elasticsearch. Berikut ialah contoh kod PHP:
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 1, 'number_of_replicas' => 0 ], 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text' ], 'content' => [ 'type' => 'text' ] ] ] ] ]; $response = $client->indices()->create($params); $params = [ 'index' => 'my_index', 'body' => [ [ 'index' => [ '_index' => 'my_index', '_id' => '1' ] ], [ 'title' => 'PHP Elasticsearch 搜索实战', 'content' => '在 PHP 中使用 Elasticsearch 进行高效的搜索技术实战。' ], [ 'index' => [ '_index' => 'my_index', '_id' => '2' ] ], [ 'title' => 'Elasticsearch 基础教程', 'content' => '学习使用 Elasticsearch 基础教程,从入门到精通。' ], ] ]; $response = $client->bulk($params);
IV Cari dan Paparan
Seterusnya, kami akan menunjukkan cara menggunakan Elasticsearch dalam PHP untuk mencari dan memaparkan keputusan kepada pengguna. Berikut ialah contoh kod PHP:
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'Elasticsearch' ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . '<br>'; echo $hit['_source']['content'] . '<br><br>'; }
Kod di atas akan mencari dokumen yang diindeks ke dalam my_index
yang mengandungi Elasticsearch
dalam tajuk, dan mencetak hasilnya. my_index
中标题中包含 Elasticsearch
的文档,并将结果打印出来。
五、搜索结果定制化
除了简单的搜索和展示,我们还可以对搜索结果进行定制化处理。以下是一个定制化处理搜索结果的示例代码:
$client = ClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'Elasticsearch' ] ], 'highlight' => [ 'pre_tags' => '<strong>', 'post_tags' => '</strong>', 'fields' => [ 'title' => new stdClass(), 'content' => new stdClass() ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { $title = isset($hit['highlight']['title']) ? implode(' ', $hit['highlight']['title']) : $hit['_source']['title']; $content = isset($hit['highlight']['content']) ? implode(' ', $hit['highlight']['content']) : $hit['_source']['content']; echo $title . '<br>'; echo $content . '<br><br>'; }
以上代码将引入高亮的功能,将搜索到的结果中匹配的关键词用 8e99a69fbe029cd4e2b854e244eab143
Selain carian dan paparan mudah, kami juga boleh menyesuaikan hasil carian. Berikut ialah contoh kod untuk pemprosesan hasil carian tersuai:
8e99a69fbe029cd4e2b854e244eab143
. 🎜🎜Kesimpulan: 🎜Dengan menggunakan Elasticsearch dan perpustakaan klien PHP, kami boleh melaksanakan fungsi carian dalam PHP dengan pantas dan menyesuaikan hasil carian. Saya harap kandungan artikel ini akan membantu anda menggunakan Elasticsearch dalam PHP untuk memaparkan dan menyesuaikan hasil carian. 🎜Atas ialah kandungan terperinci Paparan hasil carian dan teknologi penyesuaian berdasarkan Elasticsearch dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!