ElasticSearch 분사기 요약
9045 단어 elasticsearch
1. ik,pinyin 분사기
오늘 통신록으로 ES 검색 기능을 보여 줍니다. 이름 검색을 할 때 중국어와 병음을 모두 검색할 수 있도록 하려고 합니다. 그래서 이전에 자주 사용했던 중국어 분사기 ik를 제외하고 병음 분사기 pinyin을 다운로드했습니다. 사용 상황은 다음과 같습니다.
1. 다운로드
ik:https://github.com/medcl/elasticsearch-analysis-ik pinyin:https://github.com/medcl/elasticsearch-analysis-pinyin
2. 설치
다운로드한 파일을 압축을 풀고es 폴더plugins에 넣으면ik,pinyin 폴더를 새로 만들 수 있습니다.그중에서pinyin 분사기는 왜 zip 파일을 직접 다운로드할 수 없는지 모르겠습니다. 그래서 원본 코드를 다운로드해서 포장하고 압축을 풀고plugins/pinyin에 넣습니다.
3. pinyin 분사기 테스트
GET _analyze?pretty
{
"analyzer": "pinyin",
"text": " "
}
결과:
{
"tokens": [
{
"token": "liu",
"start_offset": 0,
"end_offset": 0,
"type": "word",
"position": 0
},
{
"token": "de",
"start_offset": 0,
"end_offset": 0,
"type": "word",
"position": 1
},
{
"token": "hua",
"start_offset": 0,
"end_offset": 0,
"type": "word",
"position": 2
},
{
"token": "ldh",
"start_offset": 0,
"end_offset": 0,
"type": "word",
"position": 2
}
]
}
4. 색인 템플릿의 분사기 설정
템플릿 설정에서 분사기 설정
"analysis" : {
"analyzer" : {
"ik" : {
"tokenizer" : "ik_max_word"
},
"pinyin_analyzer" : {
"tokenizer" : "my_pinyin"
}
},
"tokenizer" : {
"my_pinyin" : {
"keep_separate_first_letter" : "false",
"lowercase" : "true",
"type" : "pinyin",
"limit_first_letter_length" : "16",
"remove_duplicated_term" : "true",
"keep_original" : "true",
"keep_full_pinyin" : "true",
"keep_joined_full_pinyin":"true",
"keep_none_chinese_in_joined_full_pinyin":"true"
}
}
}
그중 my_pinyin에서 설정 항목은https://github.com/medcl/elasticsearch-analysis-pinyin문서에 설명이 있습니다. 자신의 요구에 따라 설정할 수 있습니다.
5、mapping에서 type 만들기
하나의 속성에 여러 개의 분사기 필드를 설정할 수 있습니다:
"mappings": {
"doc": {
"properties": {
"PERSON_ENAME": {
"type" : "text",
"fields" : {
"ik" : {"type" : "text", "analyzer" :"ik"},
"english": { "type":"text","analyzer": "english"},
"standard" : {"type" : "text"}
}
},
"CONTACTER_NAME": {
"type" : "text",
"fields" : {
"ik" : {"type" : "text", "analyzer" :"ik"},
"pinyin": { "type":"text","analyzer": "pinyin_analyzer"},
"standard" : {"type" : "text"}
}
}
}
}
}
6. 테스트
여러 필드에서 질의
POST sim/doc/_search
{
"query": {
"multi_match" : {
"query" : "dfbb",
"fields" : [
"PERSON_ENAME.ik",
"PERSON_ENAME.standard",
"PERSON_ENAME.english",
"CONTACTER_NAME.ik",
"CONTACTER_NAME.standard",
"CONTACTER_NAME.pinyin"]
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
kafka connect e elasticsearch를 관찰할 수 있습니다.No menu lateral do dashboard tem a opção de connectors onde ele mostra todos os clusters do kafka connect conectados atu...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.