중화사전망 - 자전 검색 - ES 인덱스 분석 (역방향 인덱스 | 정방향 인덱스)

ES 인덱스 분석 (역방향 인덱스 | 정방향 인덱스)

역 색인이란 무엇입니까? 먼저 키 (키) 와 키 위치 속성 (값) 으로 구성된 인덱스 테이블을 이해해야 합니다. 테이블의 값은 키에 의해 결정되지 않고 키의 위치는 값의 속성 값에 의해 결정되므로 역방향 인덱스라고 하고, 역방향 인덱스가 있는 문서를 역방향 문서라고 합니다. 일반적으로 역행 색인은 도서 목록과 같으며, 이를 통해 우리는 해당 데이터를 정확하게 찾을 수 있다. (알버트 아인슈타인, Northern Exposure (미국 TV 드라마), 독서명언) 다음은 Lucene 역방향 인덱스의 구조와 알고리즘에 대해 설명합니다.

키워드를 얻는 방법에는 1 의 두 가지가 있습니다. 공백 구분에 따라 모든 문자를 가져옵니다. 2. 문서의 무의미한 단어를 필터링하여 키워드를 얻습니다. 또한 단어의 시제, 대/소문자, 동의어 및 구두점이 그에 따라 처리되며, 각 분사기는 문서를 색인화할 때 서로 다른 작업을 수행합니다.

예 1: 톰은 장계에 살고, 나도 장계에 산다.

키워드: 1: [톰] [라이브] [라이브] [장계] [나] [라이브] [장계]

예 2: 그는 상해에 살았었다

키워드 2: [그] [라이브] [상하이]

키워드에 따르면 키워드가 있는 문장 번호, 문장 내 키워드가 나타나는 빈도, 문장 내 키워드가 나타나는 위치 등을 확인할 수 있습니다. (위에서 얻은 키워드에 따라 인덱싱할 때 모든 문자나 키워드를 인덱싱할 수 있습니다. Lucene 은 키워드를 인덱싱하는 방식을 사용하므로 많은 공간을 절약할 수 있습니다.) 구체적인 지표는 다음과 같습니다.

1) 사전 파일: 각 키워드, 빈도 및 위치 파일에 대한 포인터, 아카이브 (정보 위치를 나타내는 데 사용됨, 각 키워드마다 하나 이상의 필드가 있음) 정보.

2) 빈도 파일: 각 파일에서 키워드가 나타나는 빈도의 파일입니다.

3) 위치 파일: 키워드가 있는 문장 내의 위치 파일입니다.

키워드는 다음과 같이 압축됩니다. 예를 들어 "사랑해 중국" = "또한 숫자 압축은 이전 숫자와의 차이만 기록합니다. 예를 들어 현재 문장 번호는 1 1890 이고 이전 문장 번호는1입니다 압축 후 20 의 오차만 있으면 스토리지 공간이 크게 줄어듭니다.

Es 쿼리 작업은 역방향 인덱스를 사용하며, 데이터 집계 및 정렬에는 양의 인덱스가 필요합니다. 여기서 우리는 직교 색인을 도입한다.

직교 색인은 문서에 있는 각 필드의 값을 정렬하는 것을 의미하며 실제로 문서 값입니다. 예를 들면 다음과 같습니다.

예:

Doc 1: {"이름": "장삼", "나이": 27, "성별": "남자"}

문서 2: {"이름": "이사", "나이": 30, "성별": "여자"}

직교 색인:

파일 이름 연령 성별

Doc 1 잭 27km

의사 2 톰 30 세 여성

직교 색인 사용 장면에는 정렬, 합산, 필터링 등이 있습니다.

참고:

세그먼트 필드를 합산하려면 fielddata 를 true 로 설정해야 합니다. 그렇지 않으면 fielddata 를 열고 직교 인덱스를 메모리로 로드하라는 메시지가 표시되지만 오류가 발생합니다.

Doc 값은 디스크에 저장됩니다. 이 시점에서 메모리가 충분하면 OS 가 자동으로 메모리에 캐시하므로 성능이 여전히 높습니다. 메모리가 부족하면 운영 체제에서 이를 디스크에 씁니다.

역방향 및 정방향 인덱스에 대한 소개는 이것으로 끝납니다. 도움이 된다면 주목해 주세요! 감사합니다