elasticsearch의 공식 기본 단어 분할 플러그인은 중국어 단어 분할에 이상적이지 않습니다. 예를 들어, 이제 ES 공식 웹사이트에서 제공하는 단어 분할 플러그인이 중국어 단어 분할에 효과적이지 않은 이유를 구체적인 예를 들겠습니다. 참고 문서:
https://www.elastic.co/guide/en/ ... ting_analyzers.html
https://www.elastic.co/guide/en/ ... ndices-analyze.html
분석 인터페이스에 다음과 같이 데이터를 제출합니다:
http://ip:9200/_analyze POST请求
Elasticsearch를 직접 사용하면 중국어 콘텐츠 검색을 다룰 때 분명히 당황스러운 문제를 겪게 될 것입니다.중국어 단어는 한자별로 나뉩니다키바나를 사용할 때는 용어별로 그룹을 이루고, 그 결과 한자가 그룹으로 나뉘게 됩니다.
다행히도 medcl(중국에서 ES를 가장 먼저 연구한 사람 중 하나)에서 작성한 중국어 단어 분할 플러그인 두 개가 있는데, 하나는 ik이고 다른 하나는 mmseg이며, 다음은 ik 사용법만 소개합니다.
IK 분석 플러그인은 Lucene IK 분석기를 elasticsearch에 통합하고 맞춤형 사전을 지원합니다.
ElasticSearch-Analysis-IK 프로젝트 주소:https://github.com/medcl/elasticsearch-analysis-ik
Install elasticsearch-analysis-ik
먼저, Elasticsearch 실행을 멈추세요. JPS가 프로세스 ID를 찾아서 kill -9 프로세스 ID로 종료하세요! (어차피 테스트하지도 않았고, 설치하는 게 더 안전하니까요)
elasticsearch-plugin을 사용하여 설치하세요 (v5.5.1 버전부터 지원):
참고: 6.3.0을 자체 elasticsearch 버전으로 교체하세요
서버에 설치했어요Elasticsearch는 6.5.2 버전입니다버전으로, 명령어는 다음과 같습니다:
설치 오류는 다음과 같습니다:
스레드 "main" java.nio.file.FileSystemException에 예외가 발생: /usr/local/elasticsearch-6.5.2/config/analysis-ik: 작업 불가
Elasticsearch 설치 플러그인은 루트 상태로 실행되어야 합니다그래서 su root를 사용해 관리자 상태로 전환하고 설치를 다시 수행했으며, 아래 그림과 같이 성공적으로 설치되었습니다:
인터페이스에 다시 게시물 요청을 제출하여 테스트하며, 게시물 내용은 다음과 같습니다:
저는 우리의 의미를 보통 이해할 수 있다는 것을 알게 되었고, '건축가', '아름답다', '건축'을 한 단어로 나누었습니다.
ik_max_word와 ik_smart의 차이점은 무엇인가요?
ik_max_word: 텍스트는 가장 세분하게 분할되어, 예를 들어 "중화인민공화국 국가"는 "중화인민공화국, 중국인민, 중국, 중국, 중화인민공화국, 인민, 인민, 공화국, 공화국, 헤, 국가"로 나누어 가능한 모든 조합을 소진할 것입니다;
ik_smart: 가장 거친 수준의 분할, 예를 들어 '중화인민공화국 국가'를 '중화인민공화국 국가'로 분할하는 식입니다.
|