Rumah > pembangunan bahagian belakang > tutorial php > Fungsi ElasticSearch bagi fungsi PHP

Fungsi ElasticSearch bagi fungsi PHP

WBOY
Lepaskan: 2023-05-19 10:44:01
asal
873 orang telah melayarinya

Dengan kemunculan era data besar, penyimpanan dan pengambilan data menjadi semakin penting. Sebagai enjin carian dan analisis teragih berskala besar berdasarkan enjin carian Lucene, ElasticSearch sudah pasti telah menjadi salah satu enjin carian paling popular hari ini. Dalam aplikasi PHP, kita selalunya perlu menggunakan ElasticSearch untuk mendapatkan semula data Artikel ini akan memperkenalkan fungsi ElasticSearch bagi beberapa fungsi PHP yang biasa digunakan.

  1. Kelas Elasticsearch

Yang pertama ialah kelas Elasticsearch, iaitu kelas teras untuk klien PHP berinteraksi dengan pelayan Elasticsearch. Kaedah permulaan yang biasa digunakan adalah seperti berikut:

$hosts = ['http://localhost:9200'];
$client = ElasticsearchClientBuilder::create()->setHosts($hosts)->build();
Salin selepas log masuk

Antaranya, $hosts ialah alamat pelayan Elasticsearch, yang boleh menjadi tatasusunan satu atau lebih alamat. Kaedah getClient() boleh mendapatkan objek $client untuk memudahkan operasi seterusnya.

  1. Buat indeks

Dalam ElasticSearch, kita perlu mencipta indeks terlebih dahulu untuk menyimpan data. Berikut ialah contoh kod mudah untuk mencipta indeks:

$params = [
    'index' => 'my_index',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0
        ]
    ]
];
$response = $client->indices()->create($params);
Salin selepas log masuk

Dalam kod di atas, parameter $params mengandungi nama indeks dan tetapan indeks yang akan dibuat. Dalam badan, kita boleh menetapkan bilangan serpihan dan salinan indeks, dsb. Akhir sekali, laksanakan kaedah create() untuk melengkapkan operasi penciptaan indeks.

  1. Tambah Dokumen

Menambah dokumen ialah salah satu cara utama untuk menambah data pada indeks. Berikut ialah contoh penambahan dokumen:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'title' => 'My first document',
        'content' => 'This is the content of my first document'
    ]
];
$response = $client->index($params);
Salin selepas log masuk

Dalam kod di atas, parameter $params mengandungi kandungan dan kaedah menambah dokumen yang akan ditambahkan. Antaranya, indeks mewakili indeks yang akan ditambah, jenis mewakili jenis dokumen yang akan ditambah, id mewakili nombor ID dokumen yang akan ditambah, dan badan mewakili kandungan dokumen yang akan ditambah. Akhir sekali, laksanakan kaedah index() untuk melengkapkan operasi menambah dokumen.

  1. Kemas kini dokumen

Jika kita perlu mengubah suai kandungan dokumen sedia ada, kita boleh menggunakan kaedah kemas kini(). Berikut ialah contoh mengemas kini dokumen:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1',
    'body' => [
        'doc' => [
            'title' => 'Updated document title',
            'content' => 'This is the updated content of my first document'
        ]
    ]
];
$response = $client->update($params);
Salin selepas log masuk

Dalam kod di atas, parameter $params mengandungi kandungan dokumen yang akan dikemas kini dan kaedah kemas kini. Antaranya, doc mewakili kandungan dokumen yang akan dikemas kini. Akhir sekali, laksanakan kaedah kemas kini() untuk melengkapkan operasi kemas kini dokumen.

  1. Padam dokumen

Jika kita perlu memadamkan dokumen sedia ada, kita boleh menggunakan kaedah delete(). Berikut ialah contoh pemadaman dokumen:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'id' => '1'
];
$response = $client->delete($params);
Salin selepas log masuk

Dalam kod di atas, parameter $params mengandungi kandungan dokumen yang akan dipadamkan dan kaedah pemadaman. Akhir sekali, laksanakan kaedah delete() untuk melengkapkan pemadaman dokumen.

  1. Cari dokumen

Mencari ialah salah satu fungsi ElasticSearch yang paling biasa. Berikut ialah contoh carian mudah:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'query' => [
            'match' => [
                'title' => 'document'
            ]
        ]
    ]
];
$response = $client->search($params);
Salin selepas log masuk

Dalam kod di atas, parameter $params mengandungi kandungan carian dan kaedah carian. Antaranya, tajuk mewakili medan yang hendak dicari, dan dokumen mewakili kandungan yang hendak dicari. Akhir sekali, laksanakan kaedah carian() untuk melengkapkan carian untuk dokumen.

  1. Pengagregatan

Selain carian, ElasticSearch juga menyokong pelbagai operasi pengagregatan. Berikut ialah contoh pengagregatan mudah:

$params = [
    'index' => 'my_index',
    'type' => 'my_type',
    'body' => [
        'aggs' => [
            'my_agg' => [
                'terms' => [
                    'field' => 'title'
                ]
            ]
        ]
    ]
];
$response = $client->search($params);
Salin selepas log masuk

Dalam kod di atas, parameter $params mengandungi kandungan yang akan diagregatkan dan kaedah pengagregatan. Antaranya, my_agg ialah nama pengagregatan, dan tajuk mewakili medan yang hendak diagregatkan. Akhir sekali, laksanakan kaedah carian() untuk melengkapkan operasi pengagregatan.

Ringkasan

Di atas ialah pengenalan kepada fungsi ElasticSearch bagi fungsi PHP yang biasa digunakan. Sudah tentu, terdapat banyak operasi lain, seperti penambahan kelompok, penghapusan kelompok, carian paging, pengagregatan kompleks, dll. Dalam pembangunan sebenar, kita perlu memilih kaedah operasi yang berbeza berdasarkan keperluan khusus. ElasticSearch mempunyai keupayaan yang sangat berkuasa dalam carian dan pengagregatan, dan juga sangat baik dalam memproses data besar. Saya percaya ia akan membantu ramai pembangun PHP.

Atas ialah kandungan terperinci Fungsi ElasticSearch bagi fungsi PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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