Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk membina enjin carian berprestasi tinggi menggunakan php Elasticsearch?
Bagaimana untuk membina enjin carian berprestasi tinggi menggunakan php Elasticsearch?
Memandangkan jumlah data terus berkembang, membina enjin carian berprestasi tinggi menjadi semakin penting. Elasticsearch ialah enjin carian dan analisis sumber terbuka yang berkuasa tetapi mudah digunakan dan salah satu alat pilihan untuk membina enjin carian berprestasi tinggi. Artikel ini akan memperkenalkan cara menggunakan perpustakaan php Elasticsearch untuk membina enjin carian berprestasi tinggi dan memberikan contoh kod terperinci.
Mula-mula, kita perlu memasang pelayan Elasticsearch. Anda boleh memuat turun dan memasang versi yang sesuai untuk sistem pengendalian anda daripada laman web rasmi Elasticsearch. Selepas pemasangan selesai, mulakan pelayan Elasticsearch.
Seterusnya, kami perlu memasang perpustakaan php Elasticsearch dalam projek PHP kami. Komposer boleh digunakan untuk mengurus kebergantungan PHP. Cipta fail composer.json dalam direktori akar projek anda dan tambahkan kod berikut padanya:
{ "require": { "elasticsearch/elasticsearch": "^7.0" } }
Kemudian jalankan arahan composer install
untuk memasang perpustakaan php Elasticsearch.
Setelah kami memasang perpustakaan php Elasticsearch, kami boleh menyambung ke pelayan Elasticsearch. Dalam fail PHP anda, gunakan kod berikut untuk mencipta contoh klien Elasticsearch:
<?php require 'vendor/autoload.php'; use ElasticsearchClientBuilder; $client = ClientBuilder::create()->build();
Indeks ialah struktur logik yang digunakan dalam Elasticsearch untuk menyimpan dan menyusun data. Kami perlu mencipta indeks baharu dalam Elasticsearch untuk menyimpan data kami. Gunakan kod berikut untuk mencipta indeks bernama "my_index":
$params = [ 'index' => 'my_index' ]; $response = $client->indices()->create($params);
Setelah kami mencipta indeks, kami boleh mula menambah dokumen pada indeks. Dokumen ialah unit storan terkecil dalam Elasticsearch. Tambah dokumen baharu menggunakan kod berikut:
$params = [ 'index' => 'my_index', 'body' => [ 'title' => 'Example Document', 'content' => 'This is an example document', 'tags' => ['example', 'document'] ] ]; $response = $client->index($params);
Sekarang kita telah menambah dokumen pada indeks, kita boleh mula mencari. Gunakan kod berikut untuk melakukan pertanyaan carian mudah:
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'content' => 'example' ] ] ] ]; $response = $client->search($params);
Ini akan mengembalikan dokumen yang sepadan dengan kriteria carian.
Selain fungsi carian asas, Elasticsearch juga menyokong fungsi carian yang lebih maju, seperti pengagregatan, penapis dan pengisihan. Berikut ialah beberapa contoh kod:
$params = [ 'index' => 'my_index', 'body' => [ 'aggs' => [ 'by_tag' => [ 'terms' => [ 'field' => 'tags' ] ] ] ] ]; $response = $client->search($params);
Ini akan mengembalikan hasil agregat yang dikumpulkan mengikut teg.
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'bool' => [ 'must' => [ 'match' => ['content' => 'example'] ], 'filter' => [ 'range' => [ 'date' => [ 'gte' => '2021-01-01' ] ] ] ] ] ] ]; $response = $client->search($params);
Ini akan mengembalikan dokumen yang memenuhi kriteria carian dan mempunyai tarikh yang lebih besar daripada atau sama dengan 1 Januari 2021.
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => ['content' => 'example'] ], 'sort' => [ 'date' => 'desc' ] ] ]; $response = $client->search($params);
Ini akan mengembalikan dokumen yang diisih mengikut tarikh dalam tertib menurun.
Melalui langkah di atas, kami membina enjin carian asas menggunakan perpustakaan php Elasticsearch dan menambah beberapa fungsi carian lanjutan biasa. Anda boleh melanjutkan dan mengoptimumkannya mengikut keperluan anda. Saya harap artikel ini telah memberikan sedikit bantuan untuk anda dalam membangunkan enjin carian berprestasi tinggi.
Atas ialah kandungan terperinci Bagaimana untuk membina enjin carian berprestasi tinggi menggunakan php Elasticsearch?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!