반응형

Nori

    Elasticsearch nori 형태소 분석기에서 readingform filter를 이용해서 한자 내용을 한글로 변환하기

    Elasticsearch filter에서 한자로 검색했을 때 일치하는 한글 결과로 tokenizing하게 해주는 filter가 있다. 해당 filter는 nori-readingform이다. 적용 방법은 기존에 synonmys나 speech필터 적용과 동일하다. 인덱스 생성 위에서 부터 사용했던 인덱스에 nori_readingform 필터를 추가해서 생성만 해주면 된다. PUT wedul_anaylyzer { "settings": { "index" : { "analysis" : { "tokenizer": { "nori_user_dict": { "type": "nori_tokenizer", "decompound_mode": "none", "user_dictionary": "dic/nori_userdict_k..

    Elasticsearch 특정 형태소 종류를 제외하여 검색하는 필터 nori_part_of_speech 적용

    Elasticsearch를 사용하여 analyze를 사용하다가 조사, 형용사 등등을 제외하고 형태소 토크나이즈가 되어야 했다. 그래서 정식 문서를 찾아보더니 nori_part_of_speech라는 필터가 있었다. 우선 저번 시간에 만들었던 wedul_analyzer 인덱스를 이용해서 토크나이즈를 해보자. { "tokens": [ { "token": "바보", "start_offset": 0, "end_offset": 2, "type": "word", "position": 0 }, { "token": "위들", "start_offset": 3, "end_offset": 5, "type": "word", "position": 1 }, { "token": "이", "start_offset": 5, "end_o..

    Elasticsearch에서 synonyms.txt로 동의어 필터 만들어서 사용하기

    elasticsearch에서 검색기능을 넣다가 2080이라는 키워드를 검색 했을때와 이공팔공이라는 검색어를 입력했을 때 두개 모두 동일한 데이터를 출력하도록 지정하고 싶었다. 그래서 synonyms 필터를 만들기로 했다. 우선 synonyms 필터를 만들어서 사용하기 위해서는 동의어에 대한 정리가 되어있는 사전을 만들어야 한다. 사전 생성 방법은 다음과 같고 아래 링크를 참조해서 간단하게 사전을 만들었다. https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.html 파일명은 synonyms.txt이고 내용은 다음과 같다. synonyms.txt 노레바,noreva,노래바 airpods,에어팟..

    Elasticsearch 6.4 기본 한글 형태소 분석기 노리 (nori) 설명 및 사전 추가하기

    엘라스틱 서치를 쓰면서 기존에 형태소 분석기를 아리랑, 은전한닢, open korea등을 사용했었다. 근데 이번에 6.4버전이 출시 되면서 Elasticsearch에서 기본으로 제공하는 한글 형태소 분석기가 나왔다. 이름은 nori(노리)이다. 노리는 놀이라는 뜻에서 가져왔으며 mecab-ko-dic 사전을 이용하지만 사전을 압축하므로 기존 형태소 분석기와 비교하여 메모리를 적게 쓰고 훨씬 빠르다. 그럼 Docker에 엘라스틱서치 6.4와 Kibana 6.4를 설치하고 Nori 플러그인을 설치해서 한글 형태소분석기를 사용해보자. Docker에 Elasticsearch와 Kibana 설치12docker run -d -p 9200:9200 -p 9300:9300 --name elastic -e "discov..

    elasticsearch 몇가지 간단 정리

    엘라시틱 서치 간단정리 ※score 계산 알고리즘- tf-idf와 bm25 사용 (엘라스틱 서치 5.0 부터는 bm25로 사용한다고 한다.) https://www.popit.kr/bm25-elasticsearch-5-0%EC%97%90%EC%84%9C-%EA%B2%80%EC%83%89%ED%95%98%EB%8A%94-%EC%83%88%EB%A1%9C%EC%9A%B4-%EB%B0%A9%EB%B2%95/ ※최소 만족해야하는 score 지정 min_score검색된 데이터중에서 score가 6이상인 문서만 추출 https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-min-score.html123456789101112GET /..

    Elasticsearch 한글 형태소 설치 및 사용

    Elasticsearch 검색시에 한글 형태소를 사용하지 않으면 term을 단순하게 공백을 이용해서 쪼갠다. 하지만 한글말에는 조사도 구분해야하고 품사도 구분해서 사용해야 정확한 검색을 지원할 수 있다. 한글 형태소 플러그인은 크게 arirang, seunjeon, open korea text가 존재한다. 3개의 성능 비교와 자세한 설명은 엘라스틱 서치 블로그에서 참고하면 된다.https://www.elastic.co/kr/blog/using-korean-analyzers open korea text 설치3가지 플러그인중에 open korea text를 사용해서 기능을 테스트해보자. 우선 docker를 사용중이므로 elasticsearch 내부 bash shell로 접속한 후 elasticsearch-p..

반응형