2012-01-05 1 views
2

나는 논리를 어떻게 나누고 싶은지 결정하려고합니다.논리 분리 : 검색, 데이터베이스 및 응용

Node.js/Express에 내 비즈니스 로직을 배치하고 데이터베이스에 Mongo를 사용하고있었습니다. 이것은 훌륭하게 작동하지만 검색은 내 사이트에서 가장 중요한 기능 중 하나이므로 매우 강력한 검색 시스템을 구현해야합니다. 처음에는 Mongo와 Couch가 제공 한 지원과 통합이 부족하다는 사실에 매우 놀랐지 만, 데이터베이스를 만들지 않으려 고 한 것을 깨달았습니다.

Solr 또는 ElasticSearch를 사용하고 있습니다.하지만 이제는 내 문서에 올바르게 색인을 붙이면 (또는 Mongo가 할 수있는 대부분의 쿼리를 수행 할 수도 있습니다. 자연, 나는 모든 문서의 거의 모든 속성을 인덱싱 할 것입니다.) 그렇게 말하면, 나는 Redis와 같이 간단하고 단순한 무언가를 사용해야하고 대신 Solr/ElasticSearch와 같은 강력한 검색 도구에 의존해야한다고 생각합니다.

현명한 선택 인 것 같습니까? 또한 Solr, Lucene 또는 ElasticSearch 용 Nodej 모듈이없는 이유는 무엇입니까?

+0

[RedBackJS] (http://redbackjs.com)이 나에게 적합한 솔루션 인 것처럼 보였지만, 다시 한 번 더 경험 많은 건축가의 지혜에 관심이 있습니다. – cjroth

+0

당신은 주로 HTTP 클라이언트 라이브러리 (연결을 풀링 할 수있는 것이 선호 됨)가 필요하며 스스로 solr 쿼리 클래스를 만들 수 있습니다 (URL 및 Solr char 이스케이프를 잊어 버리는 것을 잊지 마십시오). – aitchnyu

답변

4

MongoDB + Solr (또는 더 나은 ElasticSearch)은 검색 기능이 가장 중요한 기능 중 하나 인 것처럼 합리적인 선택처럼 들립니다. MongoDB는 전체 텍스트 검색을 위해 만들어지지 않았습니다. Solr (Lucene)입니다. Solr은 기록 체계가 될 의도가 없습니다 (MongoDB is).

MongoDB 대 Redis? 요구 사항을 명시하지 않고 말하기 어렵다. 최소한 임시 쿼리를 위해 mongo를 골라야합니다. 어쨌든 jepsen이라는 블로그 게시물의 환상적인 시리즈를 Kyle Kingsbury으로 공부하십시오. mongodbredis이 모두 포함되었습니다.

+0

MongoDB 대 Redis, 당신은 당신이 Mongo에서 ID를 사용해야하고 코드 조인 (레코드를 복제하지 않고 미친 업데이트를 피하기 위해)이 필요하다는 것을 알았다면 어떤 방법으로 기대할 수 있습니까? –

+0

@AgentZebra dup 레코드와 미친 업데이트가 무엇을 의미하는지 확실하지 않은 경우 '단일 트랜잭션'으로 여러 문서를 업데이트하려고합니다. – milan

+0

안녕하세요 @ 밀란, 맞습니다. –

관련 문제