중화사전망 - 사전 온라인 - 유연한 검색에서 중국어 단어 세분화의 최적화

유연한 검색에서 중국어 단어 세분화의 최적화

중국어로 검색할 때 Elasticsearch 에 몇 가지 문제가 발생했습니다.

다음으로, 우리는 아래와 같은 몇 가지 점에서 ES 중국어 분사 방법에 대해 이야기합시다.

인덱스 시 인덱스 적용 범위를 제공하기 위해 일반적으로 ik_max_word analyzer 를 사용합니다. 인덱스는 가장 세밀한 세분성으로 분할됩니다. 검색 시 ik_smart analyzer 를 사용하여 검색 정확도를 높이고 가장 세밀한 세분성으로 단어를 나눕니다.

필드 매핑 설정은 다음과 같습니다.

분석 인덱스 분석 모듈은 analyzer 의 구성 가능한 레지스트리로서 analyzer 를 통해 문서 인덱스 단계에서 필드 및 검색 문자열을 처리합니다. 분석기를 사용자 정의할 때 일반적으로 문자 필터 토큰화 토큰 필터가 필요합니다.

첫째, 문자열은 문자열을 분사하기 전에 처리하는 문자 필터를 통과합니다. 문자 필터는 HTML 태그를 삭제할 수 있습니다 (예: "

영어 분사는 공백에 따라 분사할 수 있지만, 중국어 분사는 비교적 복잡하여 기계 학습 알고리즘으로 분사할 수 있다.

마지막으로 각 단어는 모든 토큰 필터를 통과합니다. 그는 단어를 수정 (예: "Quick" 을 소문자로 변경), 단어를 삭제 (예: 단어 "a", "and", "the" 등) 하거나 단어 (예: 동의어 "a") 를 추가할 수 있습니다

문자 필터-> & gt 마크 할당자->; & gt 토큰 필터

공식 홈페이지의 예:

일반적으로 인덱스 적용 범위와 검색 시의 정확성을 보장하기 위해 ik_max_word 를 인덱스 분사기로, ik_smart mode 를 검색 분석기로 사용합니다.

역방향 인덱스의 데이터는 인덱스할 때 분사기에 의해 처리되기 때문에 분사기가 변경되면 검색어가 검색시 doc 의 키워드와 같더라도 분리된 단어는 분사기에 의해 일치하지 않기 때문에 매핑이나 분사기 사전 동의어 사전이 변경될 때 데이터를 다시 인덱싱해야 합니다.

2. 1 제안된 동의어 사전

Ik 단어 분할 시스템 사용자 정의를 통해 동의어 추가

동의어의 효과를 보거나 분사의 효과를 시험하고 싶습니다

추천 단어는 병음 접두어, 맞춤법 및 중국어 접두사와 일치해야 합니다. 예를 들어 "Baidu", "BD", "Bai" 를 입력할 때 "Baidu" 라는 단어와 일치해야 하므로 인덱싱할 때 한 단어를 여러 분사기로 나누어 색인화하고 저장해야 합니다. 중국어는 단일 분사, 병음 및 철자의 첫 글자를 사용합니다

어떤 내용은 개선이 필요하다.