2017-12-26 42 views
1

Elasticsearch에서는 1,000,000 개의 문서에서 50 개의 필드 또는 50,000,000 개의 문서에서 1 개의 필드를 쿼리하는 것이 좋습니다. 내가 예를 들어 내 문제를 설명 할 것이다 : 쿼리해야는 "F1"에서 "F50"에서 수행됩니다 여기성능 최적화를위한 탄성 검색 문서 구조

doc1: { 
    "f1": "abc", 
    "f2": "pqr", 
    "f3": "lmn", 
    ... 
    "f50": "xyz" 
} 

: 케이스의 경우 1

, 우리의 문서는 것 같습니다.

doc1.1: { 
    "f": "abc" 
} 

doc1.2: { 
    "f": "pqr" 
}  

doc1.3: { 
    "f": "lmn" 
} 
... 
... 
doc1.50: { 
    "f": "xyz" 
} 

은 그냥 내가 상관없이 필드의 조회 값을 포함하는 문서에 대한 걱정 가정 해 봅시다 :

경우 2를 들면, 우리의 문서처럼 보일 것이다.

+0

아주 많은 알려지지 않은 것들 (샤드의 수, 노드의 수, 캐쉬 가능한 필터, ...)은 당신이 권위있는 대답을 얻을 수 있다고 생각하지 않습니다. IMO는 작지만 충분히 큰 차이를 만들지 않아야하고 당신은 그것을 과소 평가해야합니다. 그냥 빌드하고 불면/느리게되면, 리팩토링에 대해 생각해보십시오. 몇 GB의 데이터 만 있고 정기적 인 쿼리를 사용하는 경우에는 필요하지 않습니다. – xeraa

답변

0

나는 5 천만 문서 접근 방식을 취할 것입니다. ElasticSearch는 적절한 하드웨어 (자체 경험)로이 크기를 쉽게 처리 할 수 ​​있으며 쿼리 및 데이터 조작이 훨씬 쉬울 것입니다.

+1

왜 쿼리하기가 더 쉬운지 설명해 주시겠습니까? – demas

+1

나는 쉽게 생각할 수 있습니다. 즉, 50 개 필드가 아닌 하나의 필드에 대해서만 쿼리/매핑을 작성해야합니다. –