Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menggunakan Elasticsearch dalam pengaturcaraan PHP?

Bagaimana untuk menggunakan Elasticsearch dalam pengaturcaraan PHP?

PHPz
PHPzasal
2023-06-12 13:10:471528semak imbas

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

dan kemudian gunakannya dalam kod:

require 'vendor/autoload.php';

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
]);

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);

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);

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);

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);

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);

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!

Kenyataan:
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