2013-03-29 2 views
0

ElasticSearch를 사용할 때 json 문서를 저장하고 기본적으로 검색 할 수 있습니다. 또한 필드 유형 및 색인 설정을 설명 할 수있는 일부 색인 설정을 지정할 수 있습니다. 내 질문은 ElasticSearch에 데이터를 저장하는 내부 구현에 관한 것입니다. MongoDB에서와 마찬가지로 여기에 동적 json 데이터를 저장할 수 있으므로 모든 문서가 그대로 저장됩니다 (실제로 BSON에 있지만 여기서는 그렇지 않습니다). 예를 들어 :탄성 계산 방식 최적화

{ 
    firstName:"A", 
    lastName: "B" 
} 

는 여기에서 우리는 "계획 데이터가" "실제 데이터"보다 더 많은 디스크 공간을 볼 수 있습니다.

{ 
    f:"A", 
    l:"B" 
} 

을하고이 계획을 지원하기 위해 응용 프로그램 코드에서 일부 매핑을 제공 : 그래서 MongoDB를에 좋은 연습은 다음과 같이, "계획 데이터"의 크기를 최소화하는 것입니다. Elasticsearch (Lucene)에서 일부 스키마를 지정할 수 있으므로 내부적으로 "실제 데이터"가 아닌 "실제 데이터"만 저장할 수 있지만 동적 json 데이터도 저장할 수 있기 때문에 이에 대해 확실하지 않습니다.

그럼 ElasticSearch에서 이러한 최적화를 구현해야합니까?

답변

3

예, 약간 더 많은 공간이 필요하지만 걱정하지 않아도됩니다. Elasticsearch의 문서는 전체 JSON으로 _source 필드에 저장됩니다. 디스크 공간을 차지하고 결과를 반환 할 때 메모리를 임시로 사용합니다.

그러나, _source 필드를 압축하도록 설정할 수 있으며, Elasticsearch 버전을 0.90 이상으로 설정하면 전체 세그먼트가 압축되고 필드 이름이 압축 후보가 될 수 있습니다.

저는 암호로 읽기보다는 제 문서를 읽을 수있게하고 싶습니다.

+0

의견을 보내 주셔서 감사합니다. –

관련 문제