常見的解決方案
1、sphinx + coreseek
優點 : 技術成熟、穩定
缺點 : sphinx 不支援中文 coressk 目前已經停止維護【如果是純英文環境 sphinx 極佳】
2、迅搜(Xunsearch)
優點 : 技術成熟、穩定
缺點 : 安裝過程複雜,設定不夠靈活
3、mysql 全文搜尋
有點:安裝方便、效率高
缺點:對中文支援不夠好
來自hcoder的解決方案 (分詞 + 自主設定)
優點 : 安裝簡單(php 元件)、底層由開發者自行編寫更清晰底層、更容易的優化
缺點 : 需要開發者有 php + mysql 基礎,需要自己編寫整個過程的程式碼
原理
1、獲取詞語環節 文章資料表 -> 逐行讀取文章資訊 -> 組合所有文字內容 -> 分詞、去重 -> 記錄到新的資料表 2、搜尋環節 搜尋鍵碼記錄表 -> 合併文章資料 -> 去重 -> 展示資料
使用到的第三方元件(scws)
http://www.xunsearch.com/scws/
SCWS 是 Simple Chinese Word Segmentation 的首字母縮寫(即:簡易中文分詞系統)。
這是一套基於詞頻詞典的機械式中文分詞引擎,它能將一整段的中文文字基本正確地切分成詞。 詞是中文的最小語素單位,但在書寫時並不像英語會在詞之間用空格分開, 所以如何準確並快速分詞一直是中文分詞的攻關難點。
SCWS 採用純 C 語言開發,不依賴任何外部庫函數,可直接使用動態連結庫嵌入應用程式, 支援的中文編碼包括 GBK、UTF-8 等。此外還提供了 PHP 擴充套件模組, 可在 PHP 中快速而方便地使用分詞功能。
分詞演算法上並無太多創新成分,採用的是自己採集的詞頻詞典,並輔以一定的專有名稱,人名,地名, 數位年代等規則識別來達到基本分詞,經小範圍測試準確率在 90% ~ 95% 之間, 基本上能滿足一些小型搜尋引擎、關鍵字提取等場合運用。首次雛形版本發布於 2005 年底。
SCWS 由 hightman 開發, 並以 BSD 許可協定開源發布,原始碼託管在 github。
以上就是PHP實現中文全文搜尋的原理介紹的詳細內容,更多請關注TW511.COM其它相關文章!