Panduan Pembangunan PHP Indeks Teks Penuh Berprestasi Tinggi Sphinx
1 adalah aplikasi web masa kini Salah satu fungsi yang sangat penting. Sphinx ialah enjin carian teks penuh yang berkuasa yang boleh membantu kami mencapai fungsi carian teks penuh berprestasi tinggi. Artikel ini akan memperkenalkan cara menggunakan PHP untuk membangunkan Sphinx dan memberikan contoh kod terperinci.
2. Pengenalan kepada Sphinx
Sphinx ialah enjin carian teks penuh sumber terbuka yang menyokong berbilang platform dan bahasa pengaturcaraan dan mempunyai prestasi yang sangat tinggi.
Install Sphinxsource src1 { type = mysql sql_host = localhost sql_user = root sql_pass = password sql_db = dbname sql_port = 3306 sql_query = SELECT id, title, content FROM mytable } index myindex { source = src1 path = /path/to/your/index charset_type= utf-8 } searchd { listen = 9306:mysql41 log = /path/to/your/log query_log = /path/to/your/query/log }
Fail konfigurasi mentakrifkan maklumat tentang sumber data, indeks dan daemon carian. Ia perlu diubah suai mengikut situasi sebenar.
Import dataindexer --config /path/to/your/sphinx.conf --all --rotate
Arahan ini akan mengimport data ke dalam indeks berdasarkan maklumat indeks yang ditakrifkan dalam fail konfigurasi.
3 Gunakan PHP untuk pembangunan Sphinx
Berikut akan memperkenalkan cara menggunakan PHP untuk membangunkan Sphinx dan memberikan contoh kod khusus.
Pasang sambungan PHP Sphinxpecl install sphinx
$host = 'localhost'; $port = 9306; $index = 'myindex'; $sphinx = new SphinxClient(); $sphinx->setServer($host, $port); $sphinx->setConnectTimeout(1); $sphinx->setMatchMode(SPH_MATCH_EXTENDED2);
Melalui kelas SphinxClient kami boleh menyambung dengan mudah ke pelayan Sphinx dan menetapkan parameter sambungan yang berkaitan.
Lakukan carian teks penuh$keyword = 'PHP Sphinx'; $sphinx->setFilter('category', [1, 2, 3]); // 设置过滤条件 $sphinx->setSortMode(SPH_SORT_RELEVANCE); // 设置排序方式 $sphinx->setMaxQueryTime(1000); // 设置最大查询时间 $result = $sphinx->query($keyword, $index); // 发起搜索请求 if ($result === false) { echo '搜索失败:' . $sphinx->getLastError(); } else { echo '搜索成功!共找到' . $result['total'] . '条结果。'; foreach ($result['matches'] as $id => $match) { echo 'ID:' . $id . ',相关度:' . $match['weight']; } }
Melalui kaedah setFilter, kita boleh menetapkan keadaan penapis, kaedah setSortMode digunakan untuk menetapkan kaedah pengisihan, dan kaedah setMaxQueryTime boleh menetapkan masa pertanyaan maksimum. Akhir sekali, panggil kaedah pertanyaan untuk memulakan permintaan carian.
4. Ringkasan
Melalui pengenalan di atas, kami memahami cara menggunakan PHP untuk membangunkan Sphinx dan memberikan contoh kod khusus. Sebagai enjin carian teks penuh berprestasi tinggi, Sphinx boleh membantu kami mencapai fungsi carian teks penuh yang pantas dan tepat. Dalam aplikasi sebenar, kami boleh mengkonfigurasi dan membangunkan secara fleksibel mengikut keperluan khusus. Harap artikel ini membantu anda!
Atas ialah kandungan terperinci Panduan Pembangunan PHP untuk Pengindeksan Teks Penuh Berprestasi Tinggi Sphinx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!