Bina enjin carian yang cekap menggunakan PHP dan Elasticsearch
Pengenalan:
Dalam era Internet hari ini, enjin carian adalah pilihan pertama orang ramai untuk mendapatkan maklumat. Untuk memberikan hasil carian yang pantas dan tepat, pembangun perlu membina enjin carian yang cekap. Artikel ini akan memperkenalkan cara menggunakan PHP dan Elasticsearch untuk membina enjin carian yang cekap, dan memberikan contoh kod yang sepadan.
1. Apakah itu Elasticsearch?
Elasticsearch ialah enjin carian dan analisis sumber terbuka yang diedarkan yang digunakan secara meluas untuk carian teks penuh yang pantas dan tepat. Ia berdasarkan pustaka Lucene dan menyediakan API carian yang kaya dan ciri teragih yang berkuasa.
2 Sediakan persekitaran Elasticsearch
Sebelum mula menggunakan Elasticsearch, kita perlu menyediakan persekitaran Elasticsearch terlebih dahulu. Anda boleh pergi ke laman web rasmi (https://www.elastic.co) untuk memuat turun versi terkini Elasticsearch, dan pasang dan mulakannya mengikut dokumentasi rasmi.
3 Gunakan PHP untuk menyambung ke Elasticsearch
PHP menyediakan banyak perpustakaan untuk berinteraksi dengan Elasticsearch, yang mana yang lebih biasa digunakan ialah elasticsearch-php. Kita boleh memasang perpustakaan elasticsearch-php melalui Komposer:
composer require elasticsearch/elasticsearch
Perkenalkan perpustakaan elasticsearch-php ke dalam kod:
require 'vendor/autoload.php';
Kemudian buat klien Elasticsearch:
$client = ElasticsearchClientBuilder::create()->build();
4. Buat indeks
Sebelum mengindeks data, kita perlu mencipta ia pertama indeks. Indeks boleh difahami sebagai bekas untuk menyimpan data. Kita boleh menggunakan API createIndex untuk mencipta indeks.
$params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 1, 'number_of_replicas' => 0 ] ] ]; $response = $client->indices()->create($params);
5. Tambah dokumen
Seterusnya, kita perlu menambah beberapa dokumen pada indeks. Dokumen boleh difahami sebagai unit data yang disimpan dalam indeks. Kita boleh menggunakan API indeks untuk menambah dokumen.
$params = [ 'index' => 'my_index', 'id' => '1', 'body' => [ 'title' => 'PHP Elasticsearch Tutorial', 'content' => 'This is a sample document for Elasticsearch tutorial.' ] ]; $response = $client->index($params);
6. Cari dokumen
Dengan indeks dan dokumen, kita boleh mula mencari. Operasi carian boleh dilakukan menggunakan API carian.
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'content' => 'sample document' ] ] ] ]; $response = $client->search($params);
7. Memproses hasil carian
Hasil carian mengembalikan tatasusunan bersekutu, yang daripadanya kami boleh mengekstrak data yang diperlukan.
$hits = $response['hits']['hits']; foreach ($hits as $hit) { echo $hit['_id'].': '.$hit['_source']['title'].PHP_EOL; echo $hit['_source']['content'].PHP_EOL; echo '------------------------'.PHP_EOL; }
8 Pengisihan dan pengisihan
Dalam aplikasi praktikal, kita mungkin perlu menomborkan dan mengisih hasil carian. Anda boleh menggunakan parameter dari dan saiz untuk menentukan halaman, dan parameter isihan untuk menentukan pengisihan.
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'content' => 'sample document' ] ], 'from' => 0, 'size' => 10, 'sort' => [ 'title' => 'asc' ] ] ]; $response = $client->search($params);
Kesimpulan:
Artikel ini menerangkan cara membina enjin carian yang cekap menggunakan PHP dan Elasticsearch. Dengan menyambung ke Elasticsearch, mencipta indeks, menambah dokumen dan memproses hasil carian, kami boleh melaksanakan enjin carian berfungsi sepenuhnya dengan mudah. Ciri berkuasa Elasticsearch dan API yang mudah digunakan menjadikannya salah satu enjin carian pilihan untuk pembangun.
Di atas adalah keseluruhan kandungan artikel ini, saya harap ia akan membantu semua orang untuk memahami cara menggunakan PHP dan Elasticsearch untuk membina enjin carian yang cekap. Saya doakan anda semua berjaya dalam pembangunan enjin carian anda!
Atas ialah kandungan terperinci Bina enjin carian yang cekap menggunakan PHP dan Elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!