중화사전망 - 서예자전 - Elasticsearch 의 단어 분할 인덱스 정보를 읽는 방법
Elasticsearch 의 단어 분할 인덱스 정보를 읽는 방법
온라인 소개는 plugin-install medcl/elastic search-analysis-ik 를 직접 사용할 수 있다는 방법을 소개하지만, 내가 달성한 효과는 플러그인의 소스 코드만 다운로드했을 뿐, elastic search 는 이를 _site 플러그인으로만 취급합니다.
따라서 maven 을 실행하여 패키지화된 jar 파일을 상위 디렉토리에 복사해야 합니다. 그렇지 않으면 매핑된 분석기를 정의할 때 클래스를 찾을 수 없다는 메시지가 표시됩니다. ).
IK 는 사전 기반 분사이기 때문에 IK 의 사전 파일을 다운로드해야 합니다. medcl 의 elasticsearch-RTF 에 있습니다. 이 주소에서 다운로드할 수 있습니다.
/downloads/medcl/elastic search-analysis-ik/ik.zip
다운로드 후 config 디렉토리에 압축을 풉니다. 이 시점에서 다음 정의된 분리자가 즉시 적용되도록 elasticsearch 를 다시 시작해야 할 수 있습니다.
둘째, 단어 세분화의 정의
분사 플러그인이 준비되면 elasticsearch 에서 이 분사 유형을 정의 (선언) 할 수 있습니다 (standred 와 같은 자체 유형은 특별히 정의할 필요가 없음). 다른 설정과 마찬가지로 분사의 정의는 시스템 레벨 (elasticsearch 전역 범위) 또는 인덱스 레벨 (현재 인덱스 내에서만 표시됨) 일 수 있습니다. 물론 시스템 레벨 정의는 conf 아래의 디렉토리를 나타냅니다.
Elasticsearch.yml 파일에 정의되어 있으며 내용은 대략 다음과 같습니다.
색인:
분석:
분석기:
IkAnalyzer:
별칭: [ik]
유형: org.elasticsearch.index.analysis.ikanalyzerprovider
또는 index.analysis.analyzer.ik.type: "ik"
개인적인 취향 때문에, 나는 이렇게 하지 않고, 중국어 분사가 필요한 색인에서 정의함으로써, 이렇게 하면 더 유연하며, 다른 색인에는 영향을 주지 않는다.
분석을 정의하기 전에 색인을 끕니다. 실제로 효과를 내기 위해 닫을 필요는 없지만 데이터의 일관성을 위해 먼저 종료해야 합니다. (온라인 시스템인 경우 두 번 생각하십시오)
Curl-xpost/medcl/elasticsearch-analysis-ik, 분사기 소스 코드를 다운로드한 다음 다운로드 디렉토리로 들어가 명령 실행: mvn clean package, 패키지 생성 elastic search 이러한 디렉토리가 없으면 먼저 만듭니다.
2, ik 디렉토리 복제
다운로드 디렉토리에서 ES_HOME/config 디렉토리로 ik 디렉토리를 복사합니다.
3, 단어 분할 시스템 구성
Es _ home/config/elasticsearch.yml 파일을 열고 파일 끝에 다음을 추가합니다.
색인:
분석:
분석기:
Ik:
별칭: [ik_analyzer]
유형: org.elasticsearch.index.analysis.ikanalyzerprovider
Ik_max_word:
유형: ik
Use_smart: false
Ik_smart:
유형: ik
Use_smart: true
또는
Index.analysis.analyzer.default.type: ik
좋아! 플러그인 설치가 완료되었습니다. ES 를 다시 시작하고 ik 분사 효과를 테스트하십시오!
셋. Ik 분사 테스트
1. index 라는 색인을 작성합니다.
Curl-xput http://localhost: 9200/index
2. 색인 색인에 대한 맵핑을 생성합니다.
Curl-xpost http://localhost: 9200/index/fulltext/_ mapping-d'
{
전체 텍스트: {
"_all": {
분석기: ik
},
속성: {
내용: {
"유형": "문자열",
[부스트]: 8.0,
"term _ vector": "with _ positions _ offsets",
분석기: ik,
"include_in_all": 참
}
}
}
}'
3. 시험
Curl' http://localhost: 9200/index/_ analyze? 분석기 = ik & amppretty=true' -d'
{
본문: "세상이 그렇게 크다"
}'
결과는 다음과 같이 표시됩니다.
{
토큰: [{
토큰: 텍스트,
"start_offset": 4,
"end_offset": 8,
[유형]: "영어",
[위치]: 1
}, {
토큰: "세상",
"start_offset": 1 1,
"end_offset": 13,
"유형 type": "CN_WORD",
[위치]: 2
}, {
토큰: 그래서,
"start_offset": 13,
"end_offset": 15,
"유형 type": "CN_WORD",
[위치]: 3
}, {
토큰: 좋아요.
"start_offset": 15,
"end_offset": 17,
"유형 type": "CN_WORD",
[위치]: 4
}]
}