国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > PhpCMS > 正文

phpcms2008 search 全文搜索模塊說明

2024-09-10 07:16:07
字體:
來源:轉載
供稿:網友

search 模塊是用于支持對 cms 中允許進行全文搜索的內容進行全文搜索。

全文搜索的內部實現是使用 MySQL MyISAM 表的全文搜索索引,數據表為 search(eg. phpcms2008_search).

search 表只有三個字段:searchid,type,data.

searchid 是自動編號主鍵,type 表示內容的類型,比如是屬于新聞還是屬于產品等,data 是加了全文搜索索引的字段,字段值為被被分詞后的內容.

一篇文章內容可以被全文搜索的流程是這樣的:

內容主表(content)建有 searchid 字段,與 search 表的 searchid 字段關聯,一篇文章在 search 表的 type 字段值就是文章所屬模型的表名,如模型表名為 phpcms2008_c_news 則模型文章的全文搜索 type 字段值為 news.

執行添加文章的代碼是 /include/admin/content.class.php 的 add() 方法,里面調用 log_write() 方法,log_write 調用 search_api 方法,search_api 方法就是建立全文搜索索引的.

search_api 方法會根據文章是否有 searchid 字段值決定是新加還是更新 search 表的記錄,添加文章時因為沒有 searchid 字段值,所以必定是添加 search 表的記錄,再根據文章 status 狀態值決定是添加或更新全文搜索數據還是刪除全文搜索數據,當文章非審核通過狀態時執行的便是刪除全文搜索數據.

若是添加或更新,下面簡稱為寫入,全文搜索時,會把需要搜索的內容查出,比如文章標題,文章內容,文章關鍵詞等.

之后便調用 search 模塊的接口 /search/include/search.class.php 的 add() 方法,更新時為 update() 方法,寫入全文搜索數據,并把接口返回的 searchid 寫到此文章的 searchid 字段值中.

在 /search/include/search.class.php 的 add() 方法中,會把全文搜索內容進行分詞,保存到 search 表的 data 字段中,再把作為數組類型保存的文章原始數據緩存到 /search/data/ 目錄中.

當前臺用戶提交全文搜索請求時,先從 search 表查出符合條件的記錄的 searchid, type 值,然后讀取對應的 /search/data/ 緩存數據,便可在頁面顯示搜索結果.

一般搜索結果頁需要顯示結果的標題,url,簡單,圖片這些基本信息,所以每條全文搜索數據都會把結果頁顯示用到的信息緩存到 /search/data/ 的緩存文件中.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南京市| 辉县市| 额尔古纳市| 隆安县| 大荔县| 三河市| 乌什县| 丰都县| 浮梁县| 莱西市| 襄汾县| 赤壁市| 邢台市| 巩义市| 大埔县| 丹凤县| 镇雄县| 盐津县| 宝鸡市| 久治县| 高邑县| 汝城县| 鲜城| 新干县| 宁安市| 崇州市| 商洛市| 都安| 浮梁县| 高安市| 巴南区| 乌海市| 宁远县| 营口市| 崇明县| 静宁县| 沙坪坝区| 静海县| 绍兴县| 邻水| 黎城县|