PHP membangunkan teknologi carian teks dan carian mesej penuh untuk fungsi sembang masa nyata
Dengan populariti pemesejan segera dan pengembangan aplikasi, fungsi sembang masa nyata telah menjadi ciri yang mesti ada untuk banyak laman web dan aplikasi. Dalam sembang langsung, pengguna boleh menghantar dan menerima mesej, dan pengguna dibenarkan mencari mesej sejarah untuk disemak dan dicari. Untuk mencapai fungsi ini, kami boleh menggunakan teknologi carian teks dan carian mesej penuh.
Carian teks penuh merujuk kepada teknologi mencari kata kunci dengan pantas dalam jumlah teks yang banyak. Ia boleh meningkatkan kecekapan dan ketepatan carian mesej dengan berkesan. Dalam pembangunan PHP, kita boleh menggunakan Elasticsearch sebagai enjin carian teks penuh.
Pertama, kami perlu memasang dan menyepadukan Elasticsearch ke dalam projek PHP kami. Elasticsearch boleh dipasang dengan menjalankan arahan berikut dalam terminal:
sudo apt-get update sudo apt-get install openjdk-8-jdk wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.3-amd64.deb sudo dpkg -i elasticsearch-7.9.3-amd64.deb
Selepas pemasangan selesai, kita juga perlu memulakan perkhidmatan Elasticsearch:
sudo systemctl start elasticsearch.service
Seterusnya, kita perlu menggunakan Composer untuk memasang perpustakaan klien PHP untuk Elasticsearch. Jalankan arahan berikut dalam direktori projek:
composer require elasticsearch/elasticsearch
Selepas pemasangan selesai, kita boleh mula menulis contoh kod.
Mula-mula, kita perlu mencipta contoh klien Elasticsearch:
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->build();
Seterusnya, kita boleh membuat indeks di mana mesej sembang akan disimpan:
$params = [ 'index' => 'chat_messages', 'body' => [ 'settings' => [ 'number_of_shards' => 1, 'number_of_replicas' => 0, ] ] ]; $response = $client->indices()->create($params);
Kini, kita boleh mula menghantar mesej dan menyimpannya ke dalam Elasticsearch:
$message = [ 'sender' => 'UserA', 'receiver' => 'UserB', 'timestamp' => time(), 'message' => 'Hello, how are you?' ]; $params = [ 'index' => 'chat_messages', 'type' => 'message', 'body' => $message ]; $response = $client->index($params);
Seterusnya, kami boleh mencari mesej tertentu:
$params = [ 'index' => 'chat_messages', 'body' => [ 'query' => [ 'match' => [ 'message' => 'Hello' ] ] ] ]; $response = $client->search($params); foreach ($response['hits']['hits'] as $hit) { echo $hit['_source']['message']; }
Dengan contoh kod di atas, kami boleh melaksanakan pengambilan teks penuh dan carian mesej dalam fungsi sembang masa nyata. Apabila pengguna menghantar mesej, kami boleh menyimpannya dalam Elasticsearch dan menggunakan keupayaan carian Elasticsearch untuk mencari dan memaparkan mesej sejarah.
Kesimpulan
Teknologi carian teks penuh dan carian mesej bagi fungsi sembang masa nyata adalah bahagian yang sangat penting dalam pembangunan. Dengan menggunakan Elasticsearch sebagai enjin carian teks penuh, kami boleh mencapai keupayaan carian mesej yang cekap dan tepat. Pada masa yang sama, dengan menyimpan mesej dalam Elasticsearch, kami juga boleh melaksanakan fungsi mencari mesej sejarah. Kami berharap contoh kod yang disediakan dalam artikel ini akan membantu pembaca memahami dan menggunakan teknologi yang berkaitan.
Atas ialah kandungan terperinci PHP membangunkan teknologi carian teks dan carian mesej penuh untuk fungsi sembang masa nyata. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!