Cara mencapai carian hampir masa nyata menggunakan PHP dan Elasticsearch
Fungsi carian ialah bahagian penting dalam aplikasi web moden. Apabila berurusan dengan sejumlah besar data dan carian serentak oleh berbilang pengguna, kaedah pertanyaan pangkalan data tradisional tidak lagi dapat memenuhi keperluan. Elasticsearch ialah enjin carian dan analisis teragih sumber terbuka yang boleh memproses data berskala besar dengan cepat dan memberikan prestasi tinggi dan ketersediaan tinggi. Artikel ini akan memperkenalkan cara menggunakan PHP dan Elasticsearch untuk melaksanakan fungsi carian hampir masa nyata.
Mula-mula, anda perlu memasang Elasticsearch pada pelayan. Anda boleh memuat turun versi terkini pakej pemasangan dari tapak web rasmi (https://www.elastic.co/downloads/elasticsearch) dan memasang serta mengkonfigurasinya mengikut dokumentasi rasmi.
Kemudian, anda perlu memasang perpustakaan klien Elasticsearch untuk PHP. Anda boleh menggunakan Composer untuk memasang, laksanakan arahan berikut:
composer require elasticsearch/elasticsearch
Dalam kod PHP, anda perlu mencipta contoh klien Elasticsearch dan menyambung ke pelayan Elasticsearch. Berikut ialah contoh mudah:
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build();
Sebelum anda boleh mencari, anda perlu membuat indeks dan pemetaan dahulu. Indeks ialah konsep logik untuk menyimpan data dalam Elasticsearch, serupa dengan jadual dalam pangkalan data tradisional.
Berikut ialah contoh mencipta indeks dan pemetaan:
$params = [ 'index' => 'my_index', 'body' => [ 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', ], 'content' => [ 'type' => 'text', ], ], ], ], ]; $response = $client->indices()->create($params);
Dalam kod di atas, indeks bernama my_index
dicipta dan title
dan kandungan dicipta Medan
mentakrifkan pemetaan. Medan dan jenis pemetaan yang berbeza boleh ditakrifkan mengikut keperluan sebenar. my_index
的索引,并为title
和content
字段定义了映射。可以根据实际需求定义不同的字段和映射类型。
在进行搜索之前,需要将数据添加到索引中。下面是一个示例:
$params = [ 'index' => 'my_index', 'body' => [ 'title' => 'example title', 'content' => 'example content', ], ]; $response = $client->index($params);
以上代码中,将一个包含title
和content
字段的文档添加到索引my_index
中。可以根据实际需求添加更多的字段和内容。
最后,可以创建一个搜索查询来执行实际的搜索操作。下面是一个简单的搜索查询示例:
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'title' => 'example', ], ], ], ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['title'] . " "; }
以上代码中,执行了一个根据title
字段进行匹配的搜索查询,并输出了搜索结果中的title
title
dan content
ditambahkan pada indeks my_index
. Lebih banyak medan dan kandungan boleh ditambah mengikut keperluan sebenar. 🎜title
dan title
dalam hasil carian dikeluarkan. padang. 🎜🎜Ringkasnya, dengan menggunakan PHP dan Elasticsearch, kami boleh melaksanakan fungsi carian hampir masa nyata dengan mudah. Kami melalui keseluruhan proses bermula daripada memasang dan mengkonfigurasi Elasticsearch, untuk menyambung ke Elasticsearch, mencipta indeks dan pemetaan, menambah dokumen dan melaksanakan operasi carian. Saya harap artikel ini akan membantu dalam melaksanakan keupayaan carian hampir masa nyata menggunakan PHP dan Elasticsearch. 🎜Atas ialah kandungan terperinci Bagaimana untuk melaksanakan carian masa nyata berhampiran menggunakan PHP dan Elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!