摘要:引言相信很多朋友們也想擁有一個屬于自己的,可自定義數(shù)據(jù)的搜索引擎。旨在幫助一般開發(fā)者針對既有的海量數(shù)據(jù),快速而方便地建立自己的全文搜索引擎。
相信很多朋友們也想擁有一個屬于自己的,可自定義數(shù)據(jù)的搜索引擎。
可是網(wǎng)上的教程大多集中于利用SearX實現(xiàn)聚合各個公共搜索引擎的數(shù)據(jù)源,而不是用自己爬取的數(shù)據(jù)作為數(shù)據(jù)源。
而提到了如何利用自有數(shù)據(jù)建立搜索引擎的教程大多是基于ElasticSerach,對于我們輕量級使用的用戶而言,這個學(xué)習(xí)成本太高,僅僅是要實現(xiàn)簡單的搜索以及聯(lián)想關(guān)鍵詞功能就需要數(shù)以月計的時間進(jìn)行學(xué)習(xí)
若要使用阿里云等提供開發(fā)好的的Elastic搜索服務(wù),又會發(fā)現(xiàn)每個月包月的價格對于我們這些訪問量不大的小站而言,十分不劃算。僅僅最低檔的套餐就要104元,有這錢升級一下服務(wù)器他不香嗎?
所以我們來嘗試自建一個搜索引擎吧!!
Linux系統(tǒng)的VPS*1 ps:如果你不知道這個玩意兒是啥的話,推薦看看之前的推文:
MySQL數(shù)據(jù)庫(作為數(shù)據(jù)源)
一丟丟Linux運(yùn)維命令的基礎(chǔ)
Xunsearch 是一個高性能、全功能的全文檢索解決方案。
Xunsearch 旨在幫助一般開發(fā)者針對既有的海量數(shù)據(jù),快速而方便地建立自己的全文搜索引擎。 Xunsearch 中文譯名為“迅搜”,代碼中的經(jīng)常被縮寫為 XS,既是英文名稱的縮略也是中文聲母縮寫。 這兒的“迅”是快速的意思,至少包含了兩層涵義:其一代表了搜索結(jié)果的響應(yīng)能力,其二則為二次開發(fā)難度、速度。
可以看出,XunSearch主要分為 利用C++開發(fā)的后端用于建立索引以及搜尋索引,還有一個XunSearch PHP-SDK作為前端。
現(xiàn)在正式開始我們的教程吧
先檢查是否安裝了后續(xù)部署需要的組件,對于后端的安裝而言,至少得有GCC用于編譯,以及wget用于下載 一般而言這兩項都是有的_(Md,還真有些精簡過的系統(tǒng)沒有)_ 不放心的朋友們可以試試這兩個命令,來檢查是否安裝了這些需要的組件
gcc -v
rpm -qa|grep "wget"
檢查過后就可以用Linux下常用的軟件安裝三句話搞定了
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
tar -xjf xunsearch-full-latest.tar.bz2
cd xunsearch-full-1.4.14/ 這一步要看你自己安裝下來的版本是多少
sh setup.sh
ps:這一步由于服務(wù)器性能限制,可能會執(zhí)行很久,千萬不要中途斷開連接哦
cd 安裝目錄 這里填入你上一步記下的安裝目錄
bin/xs-ctl.sh restart
在安裝了之后,php-sdk會被釋放到安裝目錄下的/sdk/php/目錄下
這個php-sdk呢,就相當(dāng)于一個網(wǎng)站的源碼,要部署的時候直接復(fù)制到網(wǎng)站根目錄即可,就和一般的網(wǎng)站搭建過程一樣,這個不是技術(shù)上的難點(diǎn)
配置文件的編寫是XunSearch項目的核心部分,具體每一項的含義在技術(shù)文檔有 我這里以一個簡單夠用的例子來解析
project.name = OneGoSearch //項目名稱
[id] //字段名稱
type = id ///字段類型,此處為主鍵,每個項目必須要一個主鍵
[name1]
index = mixed
[link1]
index = mixed
,
這里說明幾點(diǎn):這些字段需要與你存入數(shù)據(jù)庫中的數(shù)據(jù)的字段相同,比如說如下圖
我要能夠讓用戶按照名字搜索到這些資源站的文件的鏈接,就需要索引name1,link1,還需要一個id作為唯一標(biāo)識的主鍵。
然后由于name1與link1里面的內(nèi)容按照各個加盟資源站不同的命名習(xí)慣,導(dǎo)致名字里中英文,數(shù)字以及特殊符號的表示十分復(fù)雜,所以選擇mixed類型作為字段類型
上面這樣手動編寫是為了能夠更清楚的看懂配置文件編寫的原則
實際上,官方提供了簡明易用的配置文件編寫工具:Ini文件設(shè)計輔助工具
這個只需要傻瓜化的選擇類型,填入字段名即可生成配置文件
生成好的文件,需要放入PHP-sdk中的/app文件夾,并且命名為與項目名稱相同 如下圖所示
最后一步就是建立索引啦 切換到php-sdk目錄下,我們以SQL數(shù)據(jù)庫作為數(shù)據(jù)源導(dǎo)入索引
util/Indexer.php --rebuild --source=mysql://user:passwd@localhost/database --sql="SELECT * FROM table" --project=projectname
user:數(shù)據(jù)庫的用戶名 passwd:數(shù)據(jù)庫密碼 database:數(shù)據(jù)庫名稱 table:存儲了需要索引的信息的數(shù)據(jù)表 projectname:上一步設(shè)置的項目名稱
我們再來測試一下搜索 能看到結(jié)果就說明測試部署完成了
之后我們就可以到之前安放了php-sdk的網(wǎng)站進(jìn)行搜索了 (我這個是由大佬幫忙美化過的前端,實際上XunSearch自帶的前端有點(diǎn)丑)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/125887.html
摘要:用戶可以根據(jù)自身業(yè)務(wù)特點(diǎn)和需求,從中選擇相應(yīng)的組件來搭建自己的大數(shù)據(jù)處理平臺。專業(yè)的技術(shù)支持大數(shù)據(jù)團(tuán)隊積淀了多年公有云大數(shù)據(jù)運(yùn)維和業(yè)務(wù)調(diào)優(yōu)經(jīng)驗,通過持續(xù)更新的知識庫,可以為用戶提供專家級的技術(shù)支持,解決大數(shù)據(jù)平臺使用和維護(hù)的后顧之憂。智能大數(shù)據(jù)平臺 USDPUCloud Smart Data Platform(簡稱 USDP),是 UCloud 推出的智能化、輕量級的大數(shù)據(jù)基礎(chǔ)服務(wù)平臺,通過...
痛點(diǎn): 如今數(shù)字化轉(zhuǎn)型,已成為企業(yè)界的共識。 從信息時代走向數(shù)字時代,大家都希望在生產(chǎn)要素、經(jīng)濟(jì)形態(tài)發(fā)生變革的節(jié)點(diǎn)抓住機(jī)遇不被淘汰,而絕大多數(shù)中小企業(yè)又沒有財力搞得太折騰太復(fù)雜。因此大家不要期待一口氣吃成胖子,而要抓住數(shù)字化時代的本質(zhì)是讓企業(yè)線上的數(shù)據(jù)流動起來,解決數(shù)據(jù)的運(yùn)力和流通問題,也就是數(shù)據(jù)消費(fèi)。其實絕大多數(shù)企業(yè)的核心訴求也是打破數(shù)據(jù)孤島,提升數(shù)據(jù)共享消費(fèi)的效率,進(jìn)而實現(xiàn)企業(yè)的降本...
摘要:只需三步構(gòu)建快準(zhǔn)穩(wěn)省的直播互動答題平臺視頻直播及網(wǎng)絡(luò)加速部署你只需準(zhǔn)備一臺攝像機(jī)一臺電腦,然后對接青云直播推流服務(wù)器,配置部署終端,即刻開啟高清直播之旅,暢享超低延遲支持及優(yōu)化推流協(xié)議,提供高速及分發(fā)網(wǎng)絡(luò),實現(xiàn)低至毫秒的極致延遲。 今天,你答題了嗎?今天,你通關(guān)了嗎? 今天,你答題賺了多少錢? 直播答題市場不斷升溫,越來越多的玩家開始進(jìn)入,1 月 18 日,新世相正式上線第一款以小程...
閱讀 3528·2023-04-25 20:09
閱讀 3733·2022-06-28 19:00
閱讀 3053·2022-06-28 19:00
閱讀 3071·2022-06-28 19:00
閱讀 3160·2022-06-28 19:00
閱讀 2870·2022-06-28 19:00
閱讀 3031·2022-06-28 19:00
閱讀 2628·2022-06-28 19:00