Cara cepat melaksanakan carian teks penuh dengan PHP dan Elasticsearch
Carian teks penuh menjadi semakin penting dalam aplikasi moden, ia boleh membantu pengguna mencari maklumat yang mereka perlukan dengan cepat. Elasticsearch ialah enjin carian sumber terbuka yang berkuasa yang menyediakan keupayaan carian teks penuh yang pantas dan cekap. Menggabungkan kuasa PHP dengan fleksibiliti Elasticsearch, kami boleh melaksanakan fungsi carian teks penuh dengan mudah.
Artikel ini akan menunjukkan kepada anda cara melaksanakan fungsi carian teks penuh dengan cepat menggunakan PHP dan Elasticsearch, dan memberikan beberapa contoh kod mudah.
Mula-mula, kita perlu memasang dan mengkonfigurasi Elasticsearch. Anda boleh memuat turun dan memasang versi terkini daripada laman web rasmi Elasticsearch (https://www.elastic.co/). Setelah dipasang, anda perlu mengkonfigurasi Elasticsearch untuk berkomunikasi dengan PHP. Dalam fail konfigurasi Elasticsearch, tetapkan nilai pilihan berikut untuk membenarkan akses jauh:
network.host: 0.0.0.0
Simpan fail konfigurasi dan mulakan Elasticsearch.
Seterusnya, kita perlu menyambung ke Elasticsearch menggunakan PHP. PHP menyediakan perpustakaan pelanggan Elasticsearch yang berkuasa dipanggil Elasticsearch-PHP (https://github.com/elastic/elasticsearch-php), yang boleh kami gunakan untuk berinteraksi dengan Elasticsearch.
Anda boleh menggunakan Komposer untuk memasang perpustakaan Elasticsearch-PHP. Tukar ke direktori projek PHP anda pada baris arahan dan laksanakan arahan berikut:
composer require elasticsearch/elasticsearch
Setelah pemasangan selesai, anda boleh menggunakan kod berikut dalam fail PHP anda untuk menyambung ke Elasticsearch:
require 'vendor/autoload.php'; $client = ElasticsearchClientBuilder::create()->setHosts(['http://localhost:9200'])->build();
Coretan kod ini akan menggunakan lalai localhost: 9200 digunakan sebagai hos dan nombor port Elasticsearch.
Sebelum carian teks penuh, kita perlu menyimpan data ke dalam indeks Elasticsearch. Indeks adalah tempat Elasticsearch menggunakan untuk menyimpan dan mencari dokumen.
Berikut ialah contoh mudah untuk menyimpan data ke dalam indeks dalam Elasticsearch:
$params = [ 'index' => 'my_index', 'body' => [ 'settings' => [ 'number_of_shards' => 1, 'number_of_replicas' => 0, ], 'mappings' => [ 'properties' => [ 'title' => [ 'type' => 'text', ], 'content' => [ 'type' => 'text', ], ], ], ], ]; $response = $client->indices()->create($params);
Dalam contoh di atas, kami mula-mula mentakrifkan indeks yang dipanggil my_index
dan kemudian menentukan Atribut dua medan dalam dokumen ( title
dan content
), dan tentukan jenis data medan (teks). my_index
的索引,然后定义了文档中两个字段的属性(title
和content
),并指定了字段的数据类型(text)。
在有了索引之后,我们可以将文档添加到索引中。文档是Elasticsearch的基本单位,它包含我们要搜索的内容。
下面是向索引中添加文档的一个简单示例:
$params = [ 'index' => 'my_index', 'body' => [ 'title' => 'Example Document', 'content' => 'This is an example document for testing purposes', ], ]; $response = $client->index($params);
在上面的示例中,我们定义了一个名为my_index
的索引,并在索引中添加了一个名为Example Document
的文档,其中包含一些内容。
现在,我们已经创建了一个索引并添加了一些文档,我们可以开始执行全文搜索了。
以下是一个简单的示例,展示了如何使用Elasticsearch进行全文搜索:
$params = [ 'index' => 'my_index', 'body' => [ 'query' => [ 'match' => [ 'content' => 'example', ], ], ], ]; $response = $client->search($params);
在上面的示例中,我们定义了一个匹配查询,它将搜索content
字段中包含关键词example
Berikut ialah contoh mudah untuk menambah dokumen pada indeks:
foreach ($response['hits']['hits'] as $hit) { $source = $hit['_source']; echo 'Title: ' . $source['title'] . '<br>'; echo 'Content: ' . $source['content'] . '<br><br>'; }
Dalam contoh di atas, kami mentakrifkan indeks bernama my_index
dan menambahkan dokumen baharu bernama Contoh Dokumen dokumen, yang mengandungi beberapa kandungan.
Lakukan carian teks penuh
Sekarang kami telah mencipta indeks dan menambah beberapa dokumen, kami boleh mula melakukan carian teks penuh. 🎜🎜Berikut ialah contoh mudah yang menunjukkan cara menggunakan Elasticsearch untuk carian teks penuh: 🎜rrreee🎜Dalam contoh di atas, kami telah menentukan pertanyaan padanan yang akan mencari kata kunci yang terkandung dalam medancontoh
. 🎜🎜🎜Memproses hasil carian🎜🎜🎜Akhir sekali, kita perlu memproses hasil carian dan mengeluarkannya ke antara muka pengguna. Berikut ialah contoh mudah yang menunjukkan cara memproses hasil carian: 🎜rrreee🎜 Dalam contoh di atas, kami mengulangi setiap dokumen dalam hasil carian dan mengeluarkan tajuk dan kandungan. 🎜🎜Ringkasan🎜🎜Dengan menggunakan PHP dan Elasticsearch, kami boleh melaksanakan fungsi carian teks penuh dengan mudah. Artikel ini menyediakan contoh mudah yang menunjukkan cara menyambung ke Elasticsearch, mencipta indeks, menambah dokumen, melakukan carian teks penuh dan memproses hasil carian. Menggunakan asas ini, anda boleh membina aplikasi carian teks penuh yang lebih berkuasa dan kompleks. Harap artikel ini membantu anda! 🎜Atas ialah kandungan terperinci Cara cepat melaksanakan carian teks penuh dengan PHP dan Elasticsearch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!