Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan ElasticSearch untuk penyimpanan data dan carian dalam Workerman

Cara menggunakan ElasticSearch untuk penyimpanan data dan carian dalam Workerman

王林
王林asal
2023-11-07 13:40:50705semak imbas

Cara menggunakan ElasticSearch untuk penyimpanan data dan carian dalam Workerman

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.

  1. Pemasangan dan konfigurasi ElasticSearch

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.

  1. Pemasangan dan konfigurasi Workerman

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.

  1. Tambah, padam, semak dan ubah suai data dalam ElasticSearch

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

ElasticSearch contoh dalam Workerman

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}
    Dalam kod di atas, kami mula-mula memulakan klien ElasticSearch dan mencipta objek Worker untuk mengendalikan sambungan dan data. permintaan. Apabila pelanggan menyambung dan menerima permintaan data, kami mendapatkan semula data daripada ElasticSearch dan menghantar hasilnya kepada pelanggan.
Ringkasan

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!

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