Cara melaksanakan fungsi carian berkaitan melalui PHP dan Elasticsearch
Ikhtisar:
Dalam aplikasi web moden, fungsi carian adalah bahagian yang sangat penting. Berbanding dengan carian teks penuh dalam pangkalan data tradisional, Elasticsearch, sebagai enjin carian sumber terbuka yang berkuasa, mempunyai keupayaan carian yang lebih fleksibel dan cekap. Artikel ini akan memperkenalkan anda kepada cara menggunakan PHP dan Elasticsearch untuk melaksanakan fungsi carian yang berkaitan.
Persediaan Persekitaran
Sebelum kita mula, kita perlu memastikan PHP dan Elasticsearch telah dipasang dengan betul. Ia boleh dimuat turun dan dipasang melalui laman web rasmi PHP dan laman web rasmi Elasticsearch. Selain itu, anda juga perlu memasang perpustakaan klien PHP Elasticsearch - Elasticsearch-PHP. Ia boleh dipasang melalui Composer dan laksanakan arahan berikut:
composer require elasticsearch/elasticsearch
Cipta indeks
Sebelum menggunakan Elasticsearch untuk mencari, anda perlu mencipta indeks terlebih dahulu. Indeks ialah unit asas untuk menyimpan dan menyusun data. Indeks boleh dibuat dan diurus dengan mudah melalui API yang disediakan oleh Elasticsearch-PHP. Berikut ialah kod sampel yang mencipta indeks dan mentakrifkan pemetaan medan:
require_once 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', 'analyzer' => 'standard' ], 'content' => [ 'type' => 'text', 'analyzer' => 'standard' ], ] ] ] ]; $response = $client->indices()->create($params);
Menulis data
Selepas penciptaan indeks selesai, kita perlu menulis data ke Elasticsearch untuk carian seterusnya. Penulisan data boleh dicapai melalui permintaan HTTP yang mudah. Berikut ialah kod sampel yang menulis artikel ke indeks Elasticsearch:
$params = [ 'index' => 'my_index', 'id' => 1, 'body' => [ 'title' => 'Elasticsearch相关搜索', 'content' => 'Elasticsearch是一种强大的搜索引擎,可以实现高效的相关搜索功能。', ] ]; $response = $client->index($params);
Lakukan carian
Selepas data ditulis, kami boleh melakukan operasi carian. Elasticsearch menyediakan API yang kaya untuk pelbagai jenis carian dan menyokong pelbagai kaedah pertanyaan, termasuk pertanyaan padanan, pertanyaan frasa, pertanyaan julat, dsb. Berikut ialah contoh kod untuk melakukan carian berkaitan:
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'content' => '搜索引擎', ] ] ] ]; $response = $client->search($params);
Dapatkan hasil carian
Selepas melakukan operasi carian, kita boleh mendapatkan hasil carian melalui $response. Hasil carian dikembalikan dalam format JSON, yang mengandungi senarai dokumen yang sepadan dan maklumat skor yang berkaitan. Berikut ialah contoh kod yang merentasi hasil carian dan mengeluarkannya:
foreach ($response['hits']['hits'] as $hit) { echo 'ID: ' . $hit['_id'] . ', Score: ' . $hit['_score'] . ', Title: ' . $hit['_source']['title'] . PHP_EOL; }
Ringkasan:
Melalui pengenalan artikel ini, kami telah mempelajari cara menggunakan PHP dan Elasticsearch untuk melaksanakan fungsi carian yang berkaitan. Pertama, kita perlu memasang dan mengkonfigurasi persekitaran PHP dan Elasticsearch, kemudian mencipta indeks dan menulis data. Akhir sekali, gunakan API yang disediakan oleh Elasticsearch-PHP untuk melakukan carian yang berkaitan dan mendapatkan hasil carian. Saya percaya bahawa melalui panduan artikel ini, semua orang sudah mempunyai pengetahuan asas untuk membangunkan fungsi carian yang berkaitan. Dalam pembangunan sebenar, parameter pertanyaan carian dan kaedah paparan hasil boleh dioptimumkan lagi mengikut keperluan untuk memberikan pengalaman carian yang lebih baik.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fungsi carian berkaitan melalui PHP dan Elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!