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