데이터 : 문서 및 색인
Elasticsearch는 분산 문서 저장소입니다. 정보를 열 데이터 행으로 저장하는 대신 Elasticsearch는 JSON 문서로 직렬화 된 복잡한 데이터 구조를 저장합니다. 클러스터에 여러 Elasticsearch 노드가있는 경우 저장된 문서는 클러스터 전체에 분산되어 모든 노드에서 즉시 액세스 할 수 있습니다.
문서가 저장되면 색인이 생성되고 1 초 이내에 거의 실시간으로 전체 검색이 가능 합니다. Elasticsearch는 매우 빠른 전체 텍스트 검색을 지원하는 역 인덱스라는 데이터 구조를 사용합니다. 반전 된 색인은 문서에 나타나는 모든 고유 단어를 나열하고 각 단어가 나오는 모든 문서를 식별합니다.
인덱스는 최적화 된 문서 모음으로 생각할 수 있으며 각 문서는 데이터를 포함하는 키-값 쌍인 필드 모음입니다. 기본적으로 Elasticsearch는 모든 필드의 모든 데이터를 인덱싱하고 각 인덱싱 된 필드에는 최적화 된 전용 데이터 구조가 있습니다. 예를 들어 텍스트 필드는 반전 된 인덱스로 저장되고 숫자 및 지역 필드는 BKD 트리에 저장됩니다. 필드 별 데이터 구조를 사용하여 검색 결과를 조합하고 반환하는 기능은 Elasticsearch를 매우 빠르게 만듭니다.
Elasticsearch는 또한 스키마가없는 기능이 있습니다. 즉, 문서에서 발생할 수있는 각기 다른 필드를 처리하는 방법을 명시 적으로 지정하지 않고도 문서를 인덱싱 할 수 있습니다. 동적 매핑이 활성화되면 Elasticsearch는 자동으로 새 필드를 감지하고 인덱스에 추가합니다. 이 기본 동작을 통해 데이터를 쉽게 인덱싱하고 탐색 할 수 있습니다. 문서 인덱싱을 시작하기 만하면 Elasticsearch가 부울, 부동 소수점 및 정수 값, 날짜 및 문자열을 감지하고 적절한 Elasticsearch 데이터 유형에 매핑합니다.
그러나 궁극적으로 Elasticsearch가 할 수있는 것보다 데이터와 데이터 사용 방법에 대해 더 많이 알고 있습니다. 동적 매핑을 제어하는 규칙을 정의하고 명시 적으로 매핑을 정의하여 필드가 저장되고 인덱싱되는 방식을 완전히 제어 할 수 있습니다.
고유 한 매핑을 정의하면 다음을 수행 할 수 있습니다.
- 전체 텍스트 문자열 필드와 정확한 값 문자열 필드 구분
- 언어 별 텍스트 분석 수행
- 부분 일치를위한 필드 최적화
- 사용자 지정 날짜 형식 사용
- 자동으로 감지 할 수없는 geo_point및 같은 데이터 유형을 사용하십시오.geo_shape
다른 목적을 위해 다른 방식으로 동일한 필드를 인덱싱하는 것이 유용한 경우가 많습니다. 예를 들어 문자열 필드를 전체 텍스트 검색을위한 텍스트 필드와 데이터 정렬 또는 집계를위한 키워드 필드 모두로 인덱싱 할 수 있습니다. 또는 둘 이상의 언어 분석기를 사용하여 사용자 입력이 포함 된 문자열 필드의 내용을 처리하도록 선택할 수 있습니다.
인덱싱 중에 전체 텍스트 필드에 적용되는 분석 체인은 검색시에도 사용됩니다. 전체 텍스트 필드를 쿼리 할 때 쿼리 텍스트는 인덱스에서 용어를 조회하기 전에 동일한 분석을 거칩니다.
'기타' 카테고리의 다른 글
확장 성 및 복원력 : 클러스터, 노드 및 샤드 (0) | 2020.12.20 |
---|---|
정보 출력 : 검색 및 분석 (0) | 2020.12.20 |
Elasticsearch 란 무엇입니까? (0) | 2020.12.20 |
옵션을 사용하여 프로그램 변수 설정 (0) | 2020.12.02 |
프로그램 옵션 수정 자 (0) | 2020.12.02 |
댓글