大家聽到搜尋引擎都會覺得很難寫,一點思路都沒有,其實PHP也可以做搜尋引擎的開發,不過PHP需要結合sphinx和mysql才可以開發出我們想要的搜尋引擎,想了解PHP是如何進行搜尋引擎開發的嘛!一起來看看吧! !
#首先我們下載Sphinx這個工具,下載地址官網下載地址:www.sphinxsearch.com,找到sphinx-2.2.10-release-win64.zip,64位元的下載這個,解壓縮到我們的PHP運行目錄下面,為後面網頁查看結果方便。
sphinx介紹:
Sphinx 是SQL Phrase Index(查詢詞組索引)的縮寫,Sphinx是一個基於SQL的全文檢索引擎,它提供的API介麵包括:PHP,Python,Perl,Ruby,java等,同時為MySQL也設計了一個引擎插件SphinxSE,它是一個分散式的全文檢索系統。
優點:
高速的建立索引可達到10M/s
高效能的搜尋(在2-4G的文字數據上,平均每次檢索響應的時間小於0.1秒)
可處理海量數據(目前已知可以處理100G的文本數據,在單一的CPU的系統上可處理100M的文檔)
提供的優秀的相關度演算法,基於短語相似度和統計BM2的複合Ranking的方法
支援分散式搜尋
# 提供文件片段產生功能
可作為Mysql的儲存引擎提供搜尋服務
支援布爾,片語,字詞相似度等多種檢索模式
缺點:
必須有主鍵
# 主鍵必須為整數
不負責資料儲存
# 配置不靈活
解壓縮之後的sphinx結構如圖所示:
source src1 { type = mysql sql_host = localhost #主机地址 sql_user = root#帐号 sql_pass = #密码 sql_db = sphinx #数据库 sql_port = 3306 # 数据库端口 3306 sql_query = SELECT id, name, age FROM users #查询语句 sql_attr_uint = group_id sql_attr_timestamp = date_added sql_query_pre = set names utf8 #数据库编码 } index test1 { source = src1 path = D:/myapaphe/www/sphinx/data #这个一定要配置 charset_type = utf-8 #指定编码 ngram_len = 1 #要找中文需指定为1. ngram_chars = U+3000..U+2FA1F } indexer { mem_limit = 128M } searchd { listen = 9312 listen = 9306:mysql41 log = D:\myapaphe\www\sphinx\log\searchd.log #进程日志 query_log = D:\myapaphe\www\sphinx\log\query.log #查询日志 read_timeout = 5 max_children = 30 pid_file = D:\myapaphe\www\sphinx\log\searchd.pid seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 workers = threads # for RT to work binlog_path = D:\myapaphe\www\sphinx\data }上面這些一定要配置完畢,路徑一定要符合自己的路徑。 接下來產生查詢索引:
#安裝searchd服務:
設定檔:
<?php require ( "sphinxapi.php" ); $s = new SphinxClient(); $s->SetServer('localhost',9312); $result = $s->Query('高七'); echo '<pre class="brush:php;toolbar:false">'; print_r($result);
相關推薦:
以上是PHP+Sphinx+Mysql開發搜尋引擎詳細實例講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!