Dalam pembangunan web, penyimpanan data dan carian adalah bahagian yang sangat penting. ElasticSearch ialah enjin carian teragih sumber terbuka yang digunakan secara meluas dalam carian dan analisis data. Ia mampu mengendalikan sejumlah besar data dan menyediakan keupayaan carian dan pengagregatan yang cekap. Workerman ialah rangka kerja soket PHP berprestasi tinggi yang sesuai untuk membangunkan aplikasi seperti komunikasi masa nyata, permainan dalam talian dan perkhidmatan web selaras tinggi. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ElasticSearch untuk penyimpanan data dan carian dalam Workerman.
Sebelum kita mula, kita perlu memasang dan mengkonfigurasi ElasticSearch. Anda boleh memuat turun pakej pemasangan terkini daripada laman web rasmi ElasticSearch https://www.elastic.co/downloads/elasticsearch dan memasangnya mengikut jenis sistem pengendalian. Selepas pemasangan selesai, anda boleh memulakan ElasticSearch dengan arahan berikut:
$ cd elasticsearch/bin $ ./elasticsearch
Pada masa yang sama, kami juga boleh mengkonfigurasi ElasticSearch dalam fail config/elasticsearch.yml, seperti menetapkan port pendengaran, nama kluster dan storan data laluan.
Sebelum menggunakan Workerman, kita perlu memasang dan mengkonfigurasinya terlebih dahulu. Workerman boleh dipasang dengan memasukkan arahan berikut dalam terminal:
$ composer require workerman/workerman
Setelah pemasangan selesai, kita perlu mencipta fail skrip PHP dan memperkenalkan kelas Autoloader Workerman di dalamnya, dan tambah kod berikut untuk memulakan Workerman:
require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; $worker = new Worker(); $worker->count = 4; $worker->onWorkerStart = function($worker){ // do something }; Worker::runAll();
Dalam kod di atas, kami mencipta objek Worker dan menetapkan bilangan proses kepada 4. Pada masa yang sama, kami juga mentakrifkan gelagat apabila proses Worker bermula melalui fungsi panggil balik onWorkerStart.
Apabila menggunakan ElasticSearch untuk penyimpanan dan carian data dalam Workerman, kita perlu menguasai operasi tambah, padam, semak dan ubah suai data dalam ElasticSearch berikut:
a. Penciptaan data
Dalam ElasticSearch, penciptaan data dilakukan melalui permintaan HTTP PUT kepada indeks dan jenis dokumen yang ditentukan Anda boleh menggunakan kod berikut untuk mencipta data:
curl -XPUT http://localhost:9200/{index}/{type}/{id} -d '{ "title":"ElasticSearch tutorial", "tags":["search","elasticsearch"], "body":"ElasticSearch is a powerful search engine." }'
Sudah tentu, kita juga boleh menggunakan kod PHP untuk melengkapkan penciptaan data:
$client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'type' => 'my_type', 'id' => 'my_id', 'body' => [ 'title' => 'ElasticSearch tutorial', 'tags' => ['search', 'elasticsearch'], 'body' => 'ElasticSearch is a powerful search engine.' ] ]; $response = $client->index($params);
b Pertanyaan data
Dalam ElasticSearch, pertanyaan data dibahagikan kepada dua kaedah: pertanyaan tepat dan pertanyaan kabur. Antaranya, pertanyaan tepat merujuk kepada mencari data dengan menentukan medan dan nilai, manakala pertanyaan kabur merujuk kepada mencari data melalui padanan kabur. Kod berikut boleh digunakan untuk melengkapkan pertanyaan data:
// 精确查询 $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'query' => [ 'match' => [ 'title' => 'ElasticSearch tutorial' ] ] ] ]; $response = $client->search($params); // 模糊查询 $client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'type' => 'my_type', 'body' => [ 'query' => [ 'wildcard' => [ 'title' => '*search*' ] ] ] ]; $response = $client->search($params);
c Kemas kini data
Dalam ElasticSearch, operasi kemas kini data diselesaikan melalui permintaan HTTP POST untuk jenis indeks dan dokumen yang ditentukan untuk mengemas kini data. jenis indeks dan dokumen yang ditentukan, anda boleh menggunakan kod berikut untuk memadam data:
curl -XPOST http://localhost:9200/{index}/{type}/{id}/_update -d '{ "doc":{ "title":"New ElasticSearch tutorial" } }'
Sudah tentu, kita juga boleh menggunakan kod PHP untuk melengkapkan pemadaman data:
$client = ElasticsearchClientBuilder::create()->build(); $params = [ 'index' => 'my_index', 'type' => 'my_type', 'id' => 'my_id', 'body' => [ 'doc' => [ 'title' => 'New ElasticSearch tutorial' ] ] ]; $response = $client->update($params);
Melalui perkara di atas operasi, kami telah menguasai proses pemadaman data dalam operasi Asas penyimpanan dan carian data ElasticSearch. Seterusnya, kami akan melaksanakan contoh penggunaan ElasticSearch untuk penyimpanan dan carian data dalam Workerman Kod khusus adalah seperti berikut:
curl -XDELETE http://localhost:9200/{index}/{type}/{id}
Artikel ini memperkenalkan cara menggunakan ElasticSearch untuk penyimpanan dan carian data dalam Workerman. Dengan menguasai operasi penambahan, pemadaman, pertanyaan dan pengubahsuaian data dalam ElasticSearch, kami boleh menyimpan dan mencari data dengan cepat dalam aplikasi web. Pada masa yang sama, kami juga melaksanakan aplikasi ElasticSearch mudah dalam Workerman untuk lebih memahami dan menggunakan operasi di atas.
Atas ialah kandungan terperinci Cara menggunakan ElasticSearch untuk penyimpanan data dan carian dalam Workerman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!