Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan Sphinx untuk carian teks penuh dalam pembangunan PHP

Cara menggunakan Sphinx untuk carian teks penuh dalam pembangunan PHP

WBOY
WBOYasal
2023-06-25 09:09:271485semak imbas

Cara menggunakan Sphinx untuk carian teks penuh dalam pembangunan PHP

Sphinx ialah enjin carian teks penuh berprestasi tinggi yang sesuai untuk keperluan carian teks penuh dalam pelbagai bahasa. Untuk pembangunan PHP, Sphinx menyediakan API dan pemalam untuk penyepaduan mudah ke dalam aplikasi PHP sedia ada. Dalam artikel ini, kami akan menerangkan cara menggunakan Sphinx untuk carian teks penuh.

  1. Memasang Sphinx

Pemasangan Sphinx sangat mudah, cuma jalankan beberapa arahan pada sistem Linux anda. Berikut ialah langkah-langkah untuk memasang Sphinx pada sistem Ubuntu:

(1) Kemas kini senarai pakej APT

sudo apt-get update

(2) Pasang Sphinx

sudo apt-get install sphinxsearch

(3) Mulakan Sphinx Service

sudo service sphinxsearch start

  1. Configure Sphinx

Fail konfigurasi Sphinx ialah /etc/sphinxsearch/sphinx.conf. Dalam fail ini kita boleh menentukan tetapan dan indeks global Sphinx. Berikut ialah contoh fail konfigurasi untuk mengindeks data daripada MySQL ke dalam Sphinx:

source src1
{
type = mysql

sql_host = localhost
sql_user = username
sql_pass = password
sql_pass = password
lalai ialah 3306

sql_query =

SELECT id, title, content 
FROM article

sql_attr_uint = category_id
}

index_my_index
{
sumber = src1
laluan = /var/lib/sphinxsearch/data/set_my

morfologi = stem_en

min_prefix_len = 3

min_infix_len = 1

}

dicari

{

listen = 127.0.0.1:9312
log d = /var/log/sfinxlogsearch/searchd query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinxsearch/searchd.pid
max_matches = 1000
}

Dalam fail konfigurasi ini, kami mentakrifkan sumber data bernama src1 , sambungkan ke pangkalan data MySQL dan mentakrifkan medan yang akan diambil daripadanya. Kemudian, kami menentukan indeks bernama my_index untuk mengindeks sumber src1 ke laluan yang ditentukan. Akhir sekali, kami mentakrifkan perkhidmatan carian yang mendengar pada port 9312 dan menghidupkan log pertanyaan.

Menyambung ke Sphinx menggunakan PHP

  1. Menyambung ke Sphinx dalam PHP adalah sangat mudah. Kita boleh menggunakan sambungan PHP Sphinx, yang menyediakan satu set fungsi untuk melakukan carian. Berikut ialah contoh kod PHP untuk disambungkan ke Sphinx untuk carian teks penuh:
//Sambung ke Sphinx

$cl = new SphinxClient();

$cl->setServer("localhost", 9312);


//Hasil carian
$keywords = "Sphinx";

$result = $cl->Query($keywords, "my_index");


//Output results
foreach ($result['match'] as $doc => $ padanan) {

echo "ID Dokumen={$doc}, berat={$padanan['berat']}, attr={$match'attrs'}

";
}

Dalam contoh ini, kita mula-mula membuat instantiate Buat objek SphinxClient dan nyatakan hos dan port pelayan Sphinx. Kami kemudian melakukan carian, menentukan kata kunci pertanyaan untuk dicari dan nama indeks untuk dicari. Akhir sekali, kami mengulangi hasil dan output padanan ID dokumen, pemberat dan atribut.

Ringkasan

Sphinx ialah enjin carian teks penuh berkuasa yang boleh disepadukan dengan mudah ke dalam aplikasi PHP. Dengan menggunakan Sphinx, kami boleh mencari sejumlah besar dokumen teks dengan pantas dan memperoleh hasil carian yang sangat cekap dan tepat. Kami berharap artikel ini membantu dan memberi anda pemahaman yang lebih baik tentang cara menggunakan Sphinx untuk carian teks penuh dalam pembangunan PHP.

Atas ialah kandungan terperinci Cara menggunakan Sphinx untuk carian teks penuh dalam pembangunan PHP. 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