Cara membina sistem pengesyoran berita berprestasi tinggi menggunakan Elasticsearch dan PHP
Abstrak:
Sistem pengesyoran berita telah menjadi bahagian penting dalam aplikasi Internet moden. Ia boleh memberikan cadangan kandungan berita yang diperibadikan berdasarkan minat dan pilihan pengguna. Artikel ini akan memperkenalkan cara menggunakan Elasticsearch dan PHP untuk membina sistem pengesyoran berita berprestasi tinggi dan menyediakan contoh kod yang berkaitan.
1. Persediaan
Sebelum anda mula, pastikan anda telah memasang perisian berikut:
2. Pemodelan Data
Pertama, kita perlu menentukan model data berita. Setiap berita hendaklah mempunyai sifat-sifat berikut:
Kita boleh menggunakan fungsi pemetaan Elasticsearch untuk menentukan model ini. Berikut ialah contoh definisi pemetaan:
PUT /news_index { "mappings": { "news": { "properties": { "title": { "type": "text" }, "content": { "type": "text" }, "date": { "type": "date" }, "category": { "type": "keyword" }, "keywords": { "type": "keyword" } } } } }
3. Import data
Langkah seterusnya ialah mengimport data berita ke dalam Elasticsearch. Kita boleh menulis skrip PHP untuk menyelesaikan tugas ini. Berikut ialah contoh kod:
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $newsData = [ [ 'title' => '新闻标题1', 'content' => '新闻内容1', 'date' => '2021-01-01', 'category' => '科技', 'keywords' => ['人工智能', '机器学习'] ], // 更多新闻数据... ]; $params = []; foreach ($newsData as $news) { $params['body'][] = [ 'index' => [ '_index' => 'news_index', '_type' => 'news' ] ]; $params['body'][] = $news; } $response = $client->bulk($params);
4 Carian dan pengesyoran
Setelah import data selesai, kami boleh menggunakan fungsi carian yang disediakan oleh Elasticsearch untuk melaksanakan cadangan berita. Berikut ialah kod sampel:
$params = [ 'index' => 'news_index', 'body' => [ 'query' => [ 'bool' => [ 'should' => [ ['match' => ['keywords' => '人工智能']], ['match' => ['category' => '科技']] ] ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { // 处理每条搜索结果 }
Dalam kod sampel di atas, kami membina pertanyaan kompaun (permintaan bool), yang menggunakan klausa should
untuk menunjukkan bahawa selagi salah satu syarat dipenuhi. Dengan cara ini, kami boleh melaksanakan fungsi cadangan berita berdasarkan kata kunci dan kategori.
Kesimpulan:
Menggunakan Elasticsearch dan PHP untuk membina sistem pengesyoran berita berprestasi tinggi. Contoh kod yang disediakan dalam artikel menunjukkan cara menggunakan Elasticsearch untuk pemodelan data, import data dan pelaksanaan fungsi carian dan pengesyoran. Saya harap artikel ini akan membantu anda membina sistem pengesyoran berita.
Atas ialah kandungan terperinci Cara membina sistem pengesyoran berita berprestasi tinggi menggunakan Elasticsearch dan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!