ElasticSearch의 중국어, 병음 분사

3197 단어 ElasticSearch

1, IK 분사(Git)


1.1, IK 분사 플러그인 설치

/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.2.3/elasticsearch-analysis-ik-6.2.3.zip
sudo systemctl stop elasticsearch.service
sudo systemctl start elasticsearch.service

PS: 클러스터 모드의 경우 각 노드를 설치해야 합니다.

1.2, 로컬 라이브러리 구성

vi /etc/elasticsearch/analysis-ik/IKAnalyzer.cfg.xml

"ext_dict"를 수정하면/etc/elasticsearch/analysis-ik/디렉터리에 새 custom를 만들고fresh를 복사합니다.dic.
custom/fresh.dic

elasticsearch를 다시 시작하면 됩니다.
PS: 클러스터 모드의 경우 각 노드를 구성해야 합니다.

1.3, 원격 라이브러리 구성(핫 업데이트)

vi /etc/elasticsearch/analysis-ik/IKAnalyzer.cfg.xml

remote_ext_dict 수정
http://ip:port/products/freshdictrequest

원격 확장 사전을 설정하면 핫 단어 업데이트를 완성할 수 있습니다.
실현 방식: 라이브러리에서 1분 가까이 열어를 추가하고 존재하면 OpenResty에서 헤더의 ETag(Etag=os.time)를 수정합니다.
PS: 클러스터 모드의 경우 각 노드를 구성해야 합니다.
이 실현 방식에는 구덩이가 하나 있다.
IKAnalyzer.cfg.xml에서 설정한 후 ES를 다시 시작하고 이상을 보고합니다.
java.security.AccessControlException: access denied (java.net.SocketPermission ip:port connect,resolve)

지금
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64/jre/lib/security/java.policy

의 새 자격 증명 사이트:
permission java.net.SocketPermission "ip:port","accept";

permission java.net.SocketPermission "ip:port","listen";

permission java.net.SocketPermission "ip:port","resolve";

permission java.net.SocketPermission "ip:port","connect";

2, 병음 분사(Git)

/usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-pinyin/releases/download/v6.2.3/elasticsearch-analysis-pinyin-6.2.3.zip
sudo systemctl stop elasticsearch.service
sudo systemctl start elasticsearch.service

PS: 클러스터 모드의 경우 각 노드를 설치해야 합니다.

3. IK-PinYin 분사 방안(참고용, 시정을 환영합니다!)

PUT test
{
    "index": {
        "analysis": {
            "analyzer": {
                "ik_pinyin_analyzer": {
                    "type": "custom",
                    "tokenizer": "ik_smart",
                    "filter": [
                        "my_pinyin",
                        "word_delimiter"
                    ]
                }
            },
            "filter": {
                 "my_pinyin" : {
                    "type" : "pinyin",
                    "keep_separate_first_letter" : false,
                    "keep_full_pinyin" : true,
                    "keep_original" : false,
                    "limit_first_letter_length" : 10,
                    "lowercase" : true,
                    "remove_duplicated_term" : true
                }
            }
        }
    }
}

좋은 웹페이지 즐겨찾기