十分鐘,在本地搭建一個搜索引擎
假設有一堆詞,也有一堆內容。現在想知道:
每個詞的相關詞有哪些?
每個詞的相關內容有哪些?
每個內容的相關內容有哪些?
利用上述詞與詞、詞與內容、內容與內容的關聯,來優化頁面的推薦信息,使用戶和搜索引擎獲得更好的瀏覽體驗。
這些相關信息的推薦都可以通過搜索來實現,這些推薦的信息無論是寫死的,還是實時查詢的,還是分時間緩存的,前提是都得有個搜索引擎。
如何本地搭建一個搜索引擎?
直接套一個開源搜索引擎即可
開源搜索引擎有哪些?
http://www.oschina.net/project/tag/130/search-engine
本渣渣用過以下兩個
相比之下推薦 Xunsearch。
因為Coreseek多年未更新,且我覺得寫文檔的人可能語文沒學好
Xunsearch一直更新,用的人多,碰到問題解決方案比較好找,另外後端基於C/C++開發,我一直感覺跟C沾邊的在性能上都比較好。所以下面十分鐘在本地搭建一個搜索引擎的教程,以xunsearch為例。
xunsearch官方主頁在:http://www.xunsearch.com/
10分鐘本地搭建搜索引擎示例
安裝
本渣渣很久之前就安裝過了,步驟極其簡單,直接照此處官方文檔操作就行
啟動xunsearch服務
本渣渣的xunsearch安裝在 /Users/sunjian/ 這個目錄下,執行:
/Users/sunjian/xunsearch/bin/xs-ctl.sh startn
將 /Users/sunjian/ 替換成各自的xunsearch安裝路徑,執行後,即可啟動xunsearch服務
創建項目配置文件
在 /xunsearch/asdk/php/app/ 目錄下創建項目配置文件,文件名一般與項目名同名,且以 .ini 結尾
project.name:項目名稱
project.default_charset:編碼,一般都是utf-8
server.index 和 server.search為服務埠,直接粘貼即可
下面 [xxx] 和 type 是需要創建索引的欄位名稱和對應的數據類型。
比方說我抓過來一堆微信公眾號的數據,放到mysql中,如下:
我希望可以通過關鍵詞對這些公眾號內容的標題 或者 正文進行搜索,找出與這個詞相關內容,那麼就需要對存放標題和正文的欄位創建索引,而id欄位是每條記錄的唯一標識,是mysql中的主鍵,所以也需要添加到索引中。
那麼在xunsearch配置文件中,需要寫入創建索引用到的3個欄位:id title 和 contont
欄位名稱寫在 [ ] 內,分別對應在mysql中的欄位名稱
type為這個欄位對應的數據類型,這個數據類型不是mysql中的數據類型,是在xunsearch對應的數據類型,有如下幾種:
很明顯,標題數據對應的類型為title,正文對應的欄位類型為body。
ps:配置文件文檔:http://www.xunsearch.com/doc/php/guide/ini.guide
新建索引
ps:索引操作說明文檔
http://www.xunsearch.com/doc/php/guide/util.indexer
測試搜索
ps:搜索測試文檔:http://www.xunsearch.com/doc/php/guide/util.quest
在web目錄下創建xunsearch前端搜索頁面骨架
ps:生成搜索代碼文檔:http://www.xunsearch.com/doc/php/guide/util.skel
本地開啟PHP環境
MAC本地,打開/etc/apache2/httpd.conf,將取消本行注釋
重啟Apache:
sudo apachectl restartn
ps:如果你本地已經開啟PHP環境請略過這步,如果是win系統請百度對應的開啟php環境的方法
瀏覽器打開本地localhost下生成的xunsearch前端搜索頁面
詞的相關內容:
內容的相關內容:
掃描右下角二維碼,獲取更多內容推薦閱讀: