Dengan pembangunan data besar dan teknologi pengkomputeran awan, enjin carian juga sentiasa berinovasi. Elasticsearch, enjin carian teks penuh berdasarkan Lucene, telah menjadi pilihan popular. Di sini kami akan memperkenalkan cara menggunakan Elasticsearch dalam pengaturcaraan PHP.
Mula-mula, kita perlu memasang dan menyediakan Elasticsearch. Elasticsearch boleh dimuat turun dan dipasang di laman web rasmi Untuk kaedah pemasangan tertentu, sila rujuk dokumentasi rasmi.
Untuk menggunakan Elasticsearch dalam pengaturcaraan PHP, anda perlu memasang klien Elasticsearch. Terdapat banyak pelanggan Elasticsearch untuk PHP, seperti elasticsearch.php, elastica, Ruflin/Elastica, dll. Di sini kami mengambil elastica sebagai contoh. Ia berdasarkan API klien PHP yang disediakan secara rasmi oleh Elasticsearch, yang merangkumi Elasticsearch dan agak mudah untuk digunakan.
Anda boleh menggunakan Composer untuk memasang klien Elasticsearch:
composer require ruflin/elastica
dan kemudian gunakannya dalam kod:
require 'vendor/autoload.php';
untuk memuatkan klien Elasticsearch.
Sebelum menggunakan Elasticsearch, anda perlu menyambung ke pelayan Elasticsearch. Proses sambungan memerlukan menyatakan nama hos dan nombor port pelayan Elasticsearch.
$client = new ElasticaClient([ 'host' => 'localhost', 'port' => 9200 ]);
Di sini, gunakan localhost dan nombor port 9200 untuk menyambung ke pelayan Elasticsearch tempatan.
Dalam Elasticsearch, semua data disimpan dalam indeks. Apabila menggunakan Elasticsearch, anda perlu membuat indeks terlebih dahulu. Sebagai contoh, anda boleh mencipta indeks bernama "my_index":
$index = $client->getIndex('my_index'); $index->create(array(), true);
Di sini, gunakan kaedah getClient() untuk mendapatkan indeks yang sepadan dan panggil kaedah create() untuk mencipta indeks.
Dalam Elasticsearch, dokumen ialah unit data terkecil, serupa dengan dokumen dalam MongoDB. Anda boleh menggunakan kelas Indeks untuk menambah dokumen pada indeks:
$document = array('title' => 'My title', 'content' => 'My content'); $index = $client->getIndex('my_index'); $type = $index->getType('my_type'); $newDocument = new ElasticaDocument(null, $document); $type->addDocument($newDocument);
Di sini mula-mula buat tatasusunan bersekutu untuk mewakili dokumen, kemudian gunakan kaedah getType() untuk mendapatkan jenis dalam indeks, dan kemudian gunakan addDocument() kaedah untuk menambah dokumen.
Mencari dokumen ialah operasi yang sangat biasa dalam Elasticsearch. Anda boleh menggunakan kelas Pertanyaan untuk membina pernyataan pertanyaan:
$elasticaQuery = new ElasticaQuery(); $matchQuery = new ElasticaQueryMatch(); $matchQuery->setFieldQuery('title', 'My'); $elasticaQuery->setQuery($matchQuery); $searchResult = $type->search($elasticaQuery);
Di sini, pertanyaan Padanan digunakan untuk menentukan medan yang hendak dicari dan kata kunci carian. Anda boleh melakukan carian dengan menghantar objek pertanyaan ke dalam kaedah carian() menggunakan kaedah setQuery().
Dalam Elasticsearch, operasi pengubahsuaian boleh dicapai dengan mengemas kini dokumen. Anda boleh menggunakan kelas Dokumen untuk mengemas kini dokumen:
$document = array('title' => 'My new title', 'content' => 'My new content'); $newDocument = new ElasticaDocument($document); $type->updateDocument($newDocument);
Di sini mula-mula buat objek dokumen baharu untuk mewakili kandungan dokumen yang akan dikemas kini, dan kemudian gunakan kaedah updateDocument() untuk mengemas kini dokumen.
Anda boleh menggunakan kelas Dokumen atau kelas Jenis untuk memadam dokumen:
// 使用Document类删除文档 $document = $type->getDocument(1); $document->delete(); // 使用Type类删除文档 $type->deleteById(1);
Di sini, gunakan kaedah delete() daripada kelas Document atau kaedah Type class deleteById() untuk memadamkan dokumen.
Ringkasan
Di atas ialah kaedah operasi asas menggunakan Elasticsearch dalam pengaturcaraan PHP. Walaupun Elasticsearch mempunyai banyak aplikasi lanjutan, kaedah ini boleh memenuhi keperluan carian umum. Saya harap ia akan membantu pembangun PHP menggunakan Elasticsearch.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan Elasticsearch dalam pengaturcaraan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!