Bagaimana untuk menggunakan Elasticsearch dalam pengaturcaraan PHP?

PHPz
Lepaskan: 2023-06-12 13:26:01
asal
1532 orang telah melayarinya

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.

  1. Pasang Elasticsearch

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.

  1. Pasang klien Elasticsearch untuk PHP

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
Salin selepas log masuk

dan kemudian gunakannya dalam kod:

require 'vendor/autoload.php';
Salin selepas log masuk

untuk memuatkan klien Elasticsearch.

  1. Menyambung ke 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
]);
Salin selepas log masuk

Di sini, gunakan localhost dan nombor port 9200 untuk menyambung ke pelayan Elasticsearch tempatan.

  1. Buat indeks

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);
Salin selepas log masuk

Di sini, gunakan kaedah getClient() untuk mendapatkan indeks yang sepadan dan panggil kaedah create() untuk mencipta indeks.

  1. Tambah dokumen

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);
Salin selepas log masuk

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.

  1. Cari 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);
Salin selepas log masuk

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().

  1. Ubah suai dokumen

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);
Salin selepas log masuk

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.

  1. Padam dokumen

Anda boleh menggunakan kelas Dokumen atau kelas Jenis untuk memadam dokumen:

// 使用Document类删除文档
$document = $type->getDocument(1);
$document->delete();

// 使用Type类删除文档
$type->deleteById(1);
Salin selepas log masuk

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!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan