摘要:本身是自帶文本索引功能的,但是,不支持中文。希望中數(shù)據(jù)發(fā)送變化時(shí)自動(dòng)同步到中,這樣就可以最快地用上了。這個(gè)是官方的開(kāi)發(fā)人員用寫(xiě)的一個(gè)工具,目前支持將的數(shù)據(jù)同步到中,并且支持用戶自己擴(kuò)展。拓展閱讀用實(shí)現(xiàn)中文檢索使用和實(shí)現(xiàn)模糊匹配
我們產(chǎn)品中需要全文檢索的功能,后端數(shù)據(jù)存儲(chǔ)主要使用了 MySQL + MongoDB,而其中需要檢索的內(nèi)容是在 MongoDB 中的。
MongoDB 本身是自帶文本索引功能的,但是,不支持中文。術(shù)業(yè)有專攻,MongoDB 是數(shù)據(jù)存儲(chǔ)應(yīng)用,那么全文檢索就使用專業(yè)的全文搜索引擎吧。
預(yù)選的幾個(gè)選手有:Solr、ElasticSearch、Xapian、Sphinx、XunSearch。由于我們的數(shù)據(jù)量比較大,覺(jué)得現(xiàn)在單機(jī)已經(jīng)有些力不從心了,MongoDB 也開(kāi)始計(jì)劃做分片,那么全文搜索如果自帶分布式技能那就最合適不過(guò)了。經(jīng)過(guò)一系列的考量,最后,我們就決定用 ElasticSearch 了。
現(xiàn)在后端程序是直接將數(shù)據(jù)寫(xiě)到 MongoDB 中,我不想修改程序代碼,不想在增刪改 MongoDB 中數(shù)據(jù)的同時(shí)去增刪改 ElasticSearch 中的數(shù)據(jù)。希望 MongoDB 中數(shù)據(jù)發(fā)送變化時(shí)自動(dòng)同步到 ElasticSearch 中,這樣就可以最快地用上 ElasticSearch 了。
剛開(kāi)始我找到的方案是利用 ElasticSearch 的 River 來(lái)同步數(shù)據(jù),并在 GitHub 上到了 MongoDB River 插件:elasticsearch-river-mongodb。但是,隨后我又在 ElasticSearch 官網(wǎng)上看了這篇博客:《Deprecating Rivers》,官方已經(jīng)在 1.5 以后的版本棄用 River,為了用戶的遷移,會(huì)一直保留到 2.0 版本。
于是,我得另尋方案了。然后我又在網(wǎng)上找到了另外一個(gè)方案:mongo-connector。這個(gè)是 MongoDB 官方的開(kāi)發(fā)人員用 Python 寫(xiě)的一個(gè)工具,目前支持將 MongoDB 的數(shù)據(jù)同步到 Solr、ElasticSearch、MongoDB 中,并且支持用戶自己擴(kuò)展??吹?README 中的免責(zé)聲明,我有點(diǎn)覺(jué)得這是玩票性質(zhì)的工具,但是還是抱著試試看的心態(tài)決定試試看了。
下面是部署過(guò)程:
MongoDB 必須開(kāi)啟復(fù)制集,如果已經(jīng)開(kāi)啟請(qǐng)忽略這一步:
配置復(fù)制集的名稱:mongod --replSet myDevReplSet
在 mongo shell 中初始化復(fù)制集:rs.initiate()
安裝 ElasticSearch,如果已經(jīng)安裝請(qǐng)忽略這一步。
安裝 mongo-connector:
先安裝 pip:
yum install python-setuptools && easy_install pip
通過(guò) pip 安裝 mongo-connector:
pip install mongo-connector
運(yùn)行 mongo-connector:
mongo-connector -m 127.0.0.1:27017 -t 127.0.0.1:9200 -d elastic_doc_manager
OK,現(xiàn)在,在 MongoDB 中增刪改數(shù)據(jù),都能立刻同步到 ElasticSearch 中了。在試用過(guò)程中,mongo-connector 退出過(guò)兩次,其中一次斷開(kāi)太久沒(méi)有發(fā)覺(jué),害我不得不重新同步。還是有點(diǎn)不靠譜的感覺(jué),可能還得專門(mén)寫(xiě)個(gè)守護(hù)程序,讓 mongo-connector 一直能在后臺(tái)好好干活。
拓展閱讀:
用 mongodb + elasticsearch 實(shí)現(xiàn)中文檢索
使用Mongo Connector和Elasticsearch實(shí)現(xiàn)模糊匹配
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/18780.html
摘要:一前言因公司需要選用做全文檢索,持久化存儲(chǔ)選用的是,但是希望里面的數(shù)據(jù)發(fā)生改變可以實(shí)時(shí)同步到上,一開(kāi)始主要使用的版本,可以搞定這個(gè)問(wèn)題?;蛘咝薷闹械哪骋粭l數(shù)據(jù),也會(huì)實(shí)時(shí)同步到中。如何把的主文檔和附件信息都同步到中利用的來(lái)實(shí)現(xiàn)。 一、前言 因公司需要選用elasticsearch做全文檢索,持久化存儲(chǔ)選用的是mongodb,但是希望mongodb里面的數(shù)據(jù)發(fā)生改變可以實(shí)時(shí)同步到elast...
摘要:項(xiàng)目簡(jiǎn)介前端站點(diǎn)項(xiàng)目效果預(yù)覽使用實(shí)現(xiàn)磁力鏈接爬蟲(chóng)磁力鏈接解析成種子信息,保存到數(shù)據(jù)庫(kù),利用實(shí)現(xiàn)中文檢索。搭建磁力鏈接搜索引擎源碼地址后端腳本磁力鏈接獲取磁力鏈接解析入庫(kù)定時(shí)同步源碼地址此項(xiàng)目?jī)H用學(xué)習(xí)交流技術(shù)使用不做商業(yè)用途。 項(xiàng)目簡(jiǎn)介 前端站點(diǎn) 項(xiàng)目效果預(yù)覽 http://findcl.com 使用 nodejs 實(shí)現(xiàn)磁力鏈接爬蟲(chóng) 磁力鏈接解析成 torrent種子信息,保存到數(shù)據(jù)...
閱讀 1779·2021-11-11 16:55
閱讀 2579·2021-08-27 13:11
閱讀 3638·2019-08-30 15:53
閱讀 2313·2019-08-30 15:44
閱讀 1400·2019-08-30 11:20
閱讀 1048·2019-08-30 10:55
閱讀 952·2019-08-29 18:40
閱讀 3047·2019-08-29 16:13