우리는 많은 필드를 검색 할 수있는 몽고 컬렉션을 가지고 있습니다. & 예를 들어 (미안 해요 때문에 비밀에 실제 수집을 넣을 수 없습니다)를,의를 보자 :MongoDB - 많은 순열을 가진 검색 엔진
MathProblem
{
Creator : String,
Difficulty : integer (from 0 to 4),
Categorie : integer (from 0 to 40),
NbOfQuestion : integer (less than 20),
Likes : integer,
Dislikes : integer,
Succeeded : integer,
Failures : integer
}
우리는 창조주, 난이도, Categorie, NbOfQuestion에 검색 할 수 있습니다. 좋아하는 것, 싫어하는 것, 성공한 것, 실패한 것을 정렬합니다.
예 :
- 가 categorie 20 종류 그들을 좋아하는 한국인에 의해 으로, 나에게 어려움 3의 문제를주십시오.
- 다섯 가지 질문에 대한 문제점을 오류로 분류하십시오.
- 어려움 1, 카테고리 10, 질문 2 개에 문제가 생겨서 Einstein이 (가) 작성했습니다.
- 모든 문제는 Succeeded별로 정렬 해주십시오.
기타 ... 모든 순열이 가능하며 한 필드에서 옵션 정렬이 가능합니다.
여기의 문제는 수백만 개의 레코드가 있다는 것입니다. 색인 생성은 적어도 30 기가를 소비했습니다. 또한 색인이 너무 많기 때문에이 모음집에서 쓰기 속도를 크게 떨어 뜨립니다. 그리고 그것은 글씨를 분쇄하는 동안, 그것은 독서를 잠그고 있습니다. 그래서 우리는 많은 양의 글을 쓸 수 있으며 글쓰기는 적지 만 여전히 많이 쓰고 있습니다.
"검색 엔진 솔루션"을 검색하지만 필자의 경우가 아닌 "전체 텍스트 검색"에서만 찾을 수 있습니다.
우리는 어려움 인 Categorie와 NbOfQuestion을 하나의 배열에 병합 (이 값을 10 개의 요소로 유지하여 appart로 유지)하여이 배열에서만 색인을 생성하고 약간의 공간을 절약하려고했습니다.
아무쪼록 잘 부탁드립니다.
감사합니다,
찰스
들이 완벽하게 적합 http://www.mongodb.org/display/DOCS/How+does+concurrency+work
건배,
다윗을 찾을 수 있습니다 귀하의 유스 케이스. 난 faces, 정렬 등 comples searchpages에 광범위하게 (그리고 2 년 동안 SOLR을 사용했다.) –
나는 ElasticSearch에 관해서 조금 읽었지만 어떻게 동작하는지에 대한 성능/메모리 분석을 보지 못했다. 많은 색인. – ThePainnn
내 셀에서 빠른 하나 : 정보가 많이 있어야하는 lucene 색인 성능을 찾으십시오. –