ElasticSearch에 MongoDB 데이터 자동 동기화
2960 단어 ElasticsearchMongoDB
MongoDB 자체는 텍스트 인덱스 기능을 가지고 있지만 중국어는 지원되지 않습니다.기술은 전공이 있고 MongoDB는 데이터 저장 응용 프로그램이다. 그러면 전문 검색은 전문적인 전문 검색 엔진을 사용하자.
예선에 참가한 몇 명의 선수는 Solr, Elastic Search, Xapian, Sphinx, Xun Search이다.우리의 데이터량이 비교적 많기 때문에 현재 단독기기가 이미 약간 힘이 든다고 생각한다. 몬고DB도 분할을 계획하기 시작했다. 그러면 전문 검색은 분포식 기술을 가지고 있으면 가장 적합하다.일련의 고려 끝에 우리는 Elastic Search를 사용하기로 결정했다.
현재 백엔드 프로그램은 직접 데이터를 MongoDB에 쓴다. 나는 프로그램 코드를 수정하고 싶지 않다. MongoDB의 데이터를 삭제하는 동시에 ElasticSearch의 데이터를 삭제하고 싶지 않다.MongoDB에서 데이터를 전송할 때 자동으로 ElasticSearch에 동기화하면 ElasticSearch를 가장 빨리 사용할 수 있습니다.
처음에 제가 찾은 방안은 Elastic Search의 River를 이용하여 데이터를 동기화하는 것입니다. 그리고 GitHub에서 MongoDB River 플러그인:elasticsearch-river-mongodb를 사용했습니다.그러나 그 후에 저는 Elastic Search 홈페이지에서 이 블로그를 보았습니다:'Deprecating Rivers'는 공식적으로는 1.5 이후 버전에서 River를 사용하고 사용자의 이전을 위해 2.0 버전까지 보류할 것입니다.
그래서 나는 다른 방안을 찾아야 한다.그리고 나는 또 인터넷에서 또 다른 방안을 찾았다. 몬고-connector.이것은 MongoDB 공식 개발자가 Python으로 쓴 도구입니다. 현재 MongoDB의 데이터를 Solr, ElasticSearch, MongoDB에 동기화하고 사용자 스스로 확장하는 것을 지원합니다.README의 면책 성명을 보고 나는 이것이 표 놀이의 도구라고 생각했지만 한번 해보자는 마음으로 한번 해보자고 결정했다.
다음은 배포 프로세스입니다.
mongod --replSet myDevReplSet
몬고 셸에서 복제 집합 초기화:rs.initiate()
yum install python-setuptools && easy_install pip
pip를 통해 mongo-connector:pip install mongo-connector
mongo-connector -m 127.0.0.1:27017 -t 127.0.0.1:9200 -d elastic_doc_manager
OK, 이제 MongoDB에서 데이터를 삭제하면 바로 ElasticSearch에 동기화할 수 있습니다.시용 과정에서 몬고-connector는 두 번 퇴출되었는데 그 중 한 번은 끊어진 지 너무 오래되어 발견하지 못해 나는 다시 동기화되어야 했다.여전히 좀 믿을 수 없는 느낌입니다. 몬고-connector가 백스테이지에서 열심히 일할 수 있도록 수호 프로그램을 따로 써야 할 것 같습니다.
확장 읽기:
원문 링크:https://segmentfault.com/a/1190000003773614
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Embulk를 사용하여 ElasticCloud로 보내기Embulk에서 ElasticCloud에 보낼 수 있을까라고 생각비망록도 겸해 기술을 남깁니다 Embulk 설치 ElasticCloud (14 일 체험판) brew라면 아래 명령 입력 파일 만들기 파일 내용 seed...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.