PHP怎么實現(xiàn)中文全文搜索?這個問題可能是我們?nèi)粘9ぷ鹘?jīng)常見到的。通過這個問題,希望你能收獲更多。今天跟隨小編一起來看解決方案吧。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比齊齊哈爾網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式齊齊哈爾網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋齊齊哈爾地區(qū)。費用合理售后完善,10余年實體公司更值得信賴。
一般的開發(fā)中的相關文章或內(nèi)容都是通過關鍵詞標簽、標題來實現(xiàn)相關搜索的,但這樣是搜索基本會使用低效的like語句,由于效率低下在稍微大一點的項目開發(fā)中我們無法進行文章或者相關內(nèi)容的詳情字段搜索(服務器壓力過大、效率極低)。
常見的解決方案
1、sphinx + coreseek
優(yōu)點 : 技術(shù)成熟、穩(wěn)定
缺點 : sphinx 不支持中文 coressk 目前已經(jīng)停止維護【如果是純英文環(huán)境 sphinx 極佳】
2、迅搜(Xunsearch)
優(yōu)點 : 技術(shù)成熟、穩(wěn)定
缺點 : 安裝過程復雜,配置不夠靈活
3、MySQL 全文搜索
有點:安裝方便、效率高
缺點:對中文支持不夠好
來自hcoder的解決方案 (分詞 + 自主配置)
優(yōu)點 : 安裝簡單(php 組件)、底層由開發(fā)者自行編寫更清晰底層、更容易的優(yōu)化
缺點 : 需要開發(fā)者有 php + mysql 基礎,需要自己編寫整個過程的代碼
原理
1、獲取詞語環(huán)節(jié) 文章數(shù)據(jù)表 -> 逐行讀取文章信息 -> 組合所有文字內(nèi)容 -> 分詞、去重 -> 記錄到新的數(shù)據(jù)表 2、搜索環(huán)節(jié) 搜索關鍵字記錄表 -> 合并文章數(shù)據(jù) -> 去重 -> 展示數(shù)據(jù)
使用到的第三方組件(scws)
http://www.xunsearch.com/scws/
SCWS 是 Simple Chinese Word Segmentation 的首字母縮寫(即:簡易中文分詞系統(tǒng))。
這是一套基于詞頻詞典的機械式中文分詞引擎,它能將一整段的中文文本基本正確地切分成詞。 詞是中文的最小語素單位,但在書寫時并不像英語會在詞之間用空格分開, 所以如何準確并快速分詞一直是中文分詞的攻關難點。
SCWS 采用純 C 語言開發(fā),不依賴任何外部庫函數(shù),可直接使用動態(tài)鏈接庫嵌入應用程序, 支持的中文編碼包括 GBK、UTF-8 等。此外還提供了 PHP 擴展模塊, 可在 PHP 中快速而方便地使用分詞功能。
分詞算法上并無太多創(chuàng)新成分,采用的是自己采集的詞頻詞典,并輔以一定的專有名稱,人名,地名, 數(shù)字年代等規(guī)則識別來達到基本分詞,經(jīng)小范圍測試準確率在 90% ~ 95% 之間, 基本上能滿足一些小型搜索引擎、關鍵字提取等場合運用。首次雛形版本發(fā)布于 2005 年底。
SCWS 由 hightman 開發(fā), 并以 BSD 許可協(xié)議開源發(fā)布,源碼托管在 github。
看完上述內(nèi)容,你們掌握PHP實現(xiàn)中文全文搜索的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!