国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁(yè) > 營(yíng)銷資訊 > 電子商務(wù) > 阿里云上為NodeBB論壇配置Apache Solr中文搜索引擎

阿里云上為NodeBB論壇配置Apache Solr中文搜索引擎

時(shí)間:2023-03-16 18:58:02 | 來(lái)源:電子商務(wù)

時(shí)間:2023-03-16 18:58:02 來(lái)源:電子商務(wù)

〇、緣起

前短時(shí)間天在本站想法里提到,現(xiàn)在開(kāi)源的論壇程序主力有三個(gè),Discourse,NodeBB,F(xiàn)larum。其中 NodeBB 底層是 NodeJS,相比 Discourse 的 Ruby 和 Flarum 的 PHP,我對(duì) JavaScript 的整個(gè)體系更熟悉一些。雖然 Discourse 和 Flarum 我都自己裝著玩過(guò),但在 NodeBB 上花的時(shí)間最多。

NodeBB 有很多問(wèn)題,其中一個(gè)是中文搜索功能,一直很雞肋,官方甚至都不支持中文搜索,這也極大限制了它在大中國(guó)區(qū)的發(fā)展。

NodeBB 的插件系統(tǒng)中有 db-search, elasticsearch, solr 三種搜索引擎,其中只有 Solr 能夠搜索非拉丁文字符,比如中文、日本、韓文等。

另一個(gè)解決方案是使用Google、百度、Bing等第三方搜索引擎,但這樣你的數(shù)據(jù)全部要開(kāi)放出來(lái),被這些搜索引擎索引,這個(gè)并不是所有人都能接受。被Google索引自由度更大一些,但是中國(guó)用戶又不能用;被百度索引,很多東西都會(huì)被嚴(yán)格審查,如果不小心觸犯紅線,輕則論壇被封掉,重則蹲大牢,這個(gè)誰(shuí)都不愿意看到;至于Bing搜索,用戶太少,而且同樣也面臨 big brother is watching you 的問(wèn)題。

本文介紹如何在阿里云上為 NodeBB 論壇配置好 Apache Solr 中文搜索引擎。

一、軟硬件要求

硬件方面,阿里云和AWS上現(xiàn)在都是ECS彈性伸縮服務(wù)器,可以隨時(shí)調(diào)整CPU和內(nèi)存的配置。但是為了使用 Solr 搜索引擎,至少要準(zhǔn)備2G的內(nèi)存。有些地方甚至建議準(zhǔn)備8G內(nèi)存,服務(wù)器則至少要12G內(nèi)存,對(duì)于普通人來(lái)說(shuō),這個(gè)成本太高了。用戶少的時(shí)候,先用2G-4G的服務(wù)器即可,以后再擴(kuò)充。

系統(tǒng)方面,推薦使用 Ubuntu 14.04,16.04,18.04這些長(zhǎng)期維護(hù)的版本。

Solr 需要一個(gè) Java 的運(yùn)行環(huán)境,至少是 Java 8 以上。

安裝 Java 8:

sudo add-apt-repository ppa:webupd8team/javasudo apt update; sudo apt install oracle-java8-installer然后檢查一下:

java -version1.8以上就代表是 Java 8,就可以用了,再更新一下環(huán)境變量:

sudo apt install oracle-java8-set-default這樣軟硬件環(huán)境就準(zhǔn)備好了。

參考鏈接:How to Install Oracle Java 8 / 9 in Ubuntu 16.04, Linux Mint 18

二、安裝 solr 插件

有一個(gè)插件是名字叫做 nodebb-plugin-solr, GitHub 鏈接:julianlam/nodebb-plugin-solr

在管理后臺(tái)插件中搜索,找到后安裝好,重新部署一下 NodeBB。也可以通過(guò)命令行安裝:

npm install nodebb-plugin-solr注意,安裝 Solr 插件之后,停用 dbsearch 和 elasticsearch 這些其他的搜索引擎插件。

三、安裝 Apache Solr 搜索引擎

這是在阿里云服務(wù)器上安裝,會(huì)費(fèi)一些時(shí)間。這部分可以參考 Solr 的官方教程:Apache Solr Reference Guide 7.6

下載 Solr:

wget http://ftp.jaist.ac.jp/pub/apache/lucene/solr/7.6.0/solr-7.6.0.zip解壓:

~$ ls solr*solr-7.6.0.zip~$ unzip -q solr-7.6.0.zip~$ cd solr-7.6.0/啟動(dòng)并進(jìn)行基礎(chǔ)配置:

./bin/solr start -e cloud其中有幾個(gè)概念:

Node,搜索引擎的節(jié)點(diǎn)數(shù),填1個(gè)就行。

Port,搜索引擎的連接端口,默認(rèn)是8983,如果有4個(gè)Node,那么每個(gè)Node都要有一個(gè)不同的端口供連接。

Collections,就是準(zhǔn)備搜索的文檔集合的名字,比如你的論壇名字拼音或域名。

Shard,分區(qū),文檔集合被分為幾個(gè)區(qū)塊,這個(gè)是來(lái)自搜索算法中的概念,數(shù)據(jù)不多的話,選1個(gè)就可以了。

Replica,備份,防止系統(tǒng)崩潰,可以設(shè)2個(gè)Replica。

Core,核心,一個(gè)Replica就是一個(gè)核心,這個(gè)之后會(huì)在NodeBB中用到。

其他的填選 default 就可以了。

配置完,Solr 就已經(jīng)在運(yùn)行了,但并不能看到,還需要打開(kāi)防火墻。

四、打開(kāi)阿里云控制臺(tái)和服務(wù)器的8983端口

阿里云的每臺(tái)ECS服務(wù)器,都有一個(gè)安全配置規(guī)則:

如果你不添加這個(gè)配置,8983這個(gè)端口就不能用。同樣的,如果你沒(méi)有打開(kāi)80端口,HTTP就沒(méi)有響應(yīng);不打開(kāi)22端口,SSH就無(wú)法連接。

另外一個(gè)是在服務(wù)器上讓防火墻允許8983端口進(jìn)出數(shù)據(jù):

ufw allow 8983這一步很多地方也沒(méi)有提到,如果 ufw 啟用了,但沒(méi)有打開(kāi)端口,就無(wú)法交換數(shù)據(jù)。

初期為了配置,先要打開(kāi)這個(gè)Node的端口,以便在瀏覽器中了解Solr的各種信息。后面配置好了,就需要關(guān)掉這個(gè)端口。

現(xiàn)在在網(wǎng)絡(luò)瀏覽器上打開(kāi)“服務(wù)器IP地址:8983/solr”,就可以看到 Solr 的后臺(tái)管理界面:

Solr管理界面

五、在 NodeBB 插件中填入 Solr 信息

進(jìn)入 NodeBB 的后臺(tái)管理界面,選“插件-Apache Solr”,填入 Solr 的相關(guān)信息:

其中前三個(gè)都是默認(rèn),第四個(gè)需要注意,填入 Core 的名字,這個(gè)可以在瀏覽器的Solr管理頁(yè)面找到,在左側(cè),點(diǎn)擊“Core selector”,可以看到Solr現(xiàn)在正在運(yùn)行的Core。如果之前配置了2個(gè)Replica,那么就會(huì)有兩個(gè)Core,選填入一個(gè)就行了,比如 test_shard1_replica1。

保存好后,重新啟動(dòng)一下論壇,看到右側(cè)顯示 Connected,則表示NodeBB和Solr順利連接,然后選擇 Enable Index 以及 Rebuild Index,就可以將論壇中的數(shù)據(jù)都索引一遍,如果連接正常,速度會(huì)很快。

六、關(guān)閉阿里云和服務(wù)器的8983端口

先在阿里云ECS服務(wù)器上刪掉剛才建立的8983端口安全組規(guī)則,然后在服務(wù)器上執(zhí)行

ufw deny 8983這樣是為了保證安全。關(guān)閉8983端口之后,瀏覽器中將無(wú)法再看到 Solr 的后臺(tái)管理界面。但是NodeBB是在本機(jī)上連接Solr,所以不需要向外開(kāi)放這個(gè)端口。

如何通過(guò)后臺(tái)管理界面配置 Solr,可以參考官方文檔:Collections API | Apache Solr Reference Guide 6.6

另外專門解釋 Solr 中的一些概念:SolrTerminology - Solr Wiki

NodeBB 上配置好 Solr 搜索引擎之后,就可以順利搜索中文了,而且性能相當(dāng)好:

NodeBB 使用 Solr 實(shí)現(xiàn)本地中文搜索

七、其他問(wèn)題

為了使用阿里云的服務(wù)器,域名也必須是在國(guó)內(nèi)備案的,備案過(guò)程需要至少23天。

NodeBB 仍然在熱火朝天的開(kāi)發(fā)之中,各種 bug 在所難免,常會(huì)有版本升級(jí),每次升級(jí)在解決一些問(wèn)題時(shí),也會(huì)帶來(lái)新的問(wèn)題,這個(gè)就需要至少能進(jìn)行 JavaScript 相關(guān)的編程,自己去解決一些問(wèn)題。很大概率你遇到的問(wèn)題,還沒(méi)有人回答過(guò)。這是我將這個(gè)過(guò)程記錄下來(lái)的原因。如果你遇到什么問(wèn)題,歡迎評(píng)論留言。

關(guān)鍵詞:中文,索引,配置,論壇

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉