十分鐘,在本地搭建一個搜索引擎

假設有一堆詞,也有一堆內容。現在想知道:

  • 每個詞的相關詞有哪些?

  • 每個詞的相關內容有哪些?

  • 每個內容的相關內容有哪些?

利用上述詞與詞、詞與內容、內容與內容的關聯,來優化頁面的推薦信息,使用戶和搜索引擎獲得更好的瀏覽體驗。

這些相關信息的推薦都可以通過搜索來實現,這些推薦的信息無論是寫死的,還是實時查詢的,還是分時間緩存的,前提是都得有個搜索引擎。

如何本地搭建一個搜索引擎?

直接套一個開源搜索引擎即可

開源搜索引擎有哪些?

oschina.net/project/tag

本渣渣用過以下兩個

相比之下推薦 Xunsearch。

因為Coreseek多年未更新,且我覺得寫文檔的人可能語文沒學好

Xunsearch一直更新,用的人多,碰到問題解決方案比較好找,另外後端基於C/C++開發,我一直感覺跟C沾邊的在性能上都比較好。所以下面十分鐘在本地搭建一個搜索引擎的教程,以xunsearch為例。

xunsearch官方主頁在: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:配置文件文檔:xunsearch.com/doc/php/g

新建索引

ps:索引操作說明文檔

xunsearch.com/doc/php/g

測試搜索

ps:搜索測試文檔:xunsearch.com/doc/php/g

在web目錄下創建xunsearch前端搜索頁面骨架

ps:生成搜索代碼文檔:xunsearch.com/doc/php/g

本地開啟PHP環境

MAC本地,打開/etc/apache2/httpd.conf,將取消本行注釋

重啟Apache:

sudo apachectl restartn

ps:如果你本地已經開啟PHP環境請略過這步,如果是win系統請百度對應的開啟php環境的方法

瀏覽器打開本地localhost下生成的xunsearch前端搜索頁面

詞的相關內容:

內容的相關內容:

掃描右下角二維碼,獲取更多內容


推薦閱讀:

TAG:搜索引擎优化SEO | 搜索引擎 | 互联网 |