2017년 6월 4일 일요일

elasticsearch-anaysis-seunjeon 다운로더

elasticsearch 버전이 새로 릴리즈 될때마다 plugin도 새롭게 릴리즈를 해줘야만 설치가 되는 문제가 있었습니다. 플러그인 압축파일 안에 plugin-descriptor.properties 파일이 있는데 그 파일 내에 버전정보가 다르면 설치가 되지않아서 생기는 문제였습니다. 플러그인 개발을 주업으로 하지않는 저희 입장에서는 매번 지원을 해드리는게 어려운 일이 아닐수 없었습니다. 매번 릴리즈 하지 않고 plugin-descriptor.properties 파일 내 버전 정보를 변경해 줄수있는 스크립트를 작성했습니다. 아래처럼 사용하시면 새로운 elasticsearch가 나오더라도 언제든지 seunjeon 설치가 가능합니다. (단, elasticsearch interface의 변화가 없다면..)


# download plugin
$ bash <(curl -s https://bitbucket.org/eunjeon/seunjeon/raw/master/elasticsearch/scripts/downloader.sh) -e <es-version> -p <plugin-version>

# install plugin
$ ./bin/elasticsearch-plugin install file://`pwd`/elasticsearch-analysis-seunjeon-<plugin-version>.zip
  • downloader.sh 가 하는 일은 elasticsearch-analysis-seunjeon-<plugin-version>.zip 파일을 내려받은 후 plugin-descriptor.properties 의 elasticsearch.version 을 변경하여 재압축합니다.
  • elasticsearch가 버전 업 될때마다 플러그인을 재배포하는데 어려움이 있어 스크립트를 제공합니다.

2016년 12월 25일 일요일

mecab-ko-lucene-analyzer-0.21.0, elasticsesarch-analysis-mecab-ko-5.1.1.0 배포합니다.

mecab-ko-lucene-analyzer-0.21.0, elasticsesarch-analysis-mecab-ko-5.1.1.0이 나왔습니다.

새로운 기능
  • Lucene/Solr 6.3.0 지원
  • Elasticsearch 5.1.1 지원 - issue #6
수정
  • 로딩 실패시 UnsatisfiedLinkError throw 하도록 수정 - issue #5
소스 패치를 보내주신 Jaepil Jeong 님과 이슈 등록해주신 devimapreduce 님께 감사드립니다.

Lucene/Solr 용 분석기
Elasticsearch 용 분석기

2016년 12월 24일 토요일

seunjeon1.3.0 / elasticsearch-analysis-seunjeon 5.1.1.1 릴리즈합니다.

사용자 사전에 복합명사 추가가 가능해졌습니다.

'+' 로 복합명사를 표현할 수 있습니다.
  예: "낄끼+빠빠"
escaping은 '\'로 가능합니다.
  예: "c\+\+"

seunjeon

  • https://bitbucket.org/eunjeon/seunjeon
import org.bitbucket.eunjeon.seunjeon.Analyzer

// 형태소 분석
Analyzer.parse("아버지가방에들어가신다.").foreach(println)

// 어절 분석
Analyzer.parseEojeol("아버지가방에들어가신다.").foreach(println)
// or
Analyzer.parseEojeol(Analyzer.parse("아버지가방에들어가신다.")).foreach(println)

/**
  * 사용자 사전 추가
  * surface,cost
  *   surface: 단어명. '+' 로 복합명사를 구성할 수 있다.
  *           '+'문자 자체를 사전에 등록하기 위해서는 '\+'로 입력. 예를 들어 'C\+\+'
  *   cost: 단어 출연 비용. 작을수록 출연할 확률이 높다.
  */
Analyzer.setUserDict(Seq("덕후", "버카충,-100", "낄끼+빠빠,-100", """C\+\+""").toIterator)
Analyzer.parse("덕후냄새가 난다.").foreach(println)

// 활용어 원형
Analyzer.parse("빨라짐").flatMap(_.deInflect()).foreach(println)

// 복합명사 분해
val ggilggi = Analyzer.parse("낄끼빠빠")
ggilggi.foreach(println)  // 낄끼빠빠
ggilggi.flatMap(_.deCompound()).foreach(println)  // 낄끼+빠빠

Analyzer.parse("C++").flatMap(_.deInflect()).foreach(println) // C++

analysis-seunjeon

  • https://bitbucket.org/eunjeon/seunjeon/raw/master/elasticsearch/
#!/usr/bin/env bash

ES='http://localhost:9200'
ESIDX='seunjeon-idx'

curl -XDELETE "${ES}/${ESIDX}?pretty"
sleep 1
curl -XPUT "${ES}/${ESIDX}/?pretty" -d '{
  "settings" : {
    "index":{
      "analysis":{
        "analyzer":{
          "korean":{
            "type":"custom",
            "tokenizer":"seunjeon_default_tokenizer"
          }
        },
        "tokenizer": {
          "seunjeon_default_tokenizer": {
            "type": "seunjeon_tokenizer",
            "index_eojeol": false,
            "user_words": ["낄끼+빠빠,-100", "c\\+\\+", "어그로", "버카충", "abc마트"]
          }
        }
      }
    }
  }
}'

sleep 1

echo "# 삼성/N 전자/N"
curl -XGET "${ES}/${ESIDX}/_analyze?analyzer=korean&pretty" -d '삼성전자'

echo "# 빠르/V 지/V"
curl -XGET "${ES}/${ESIDX}/_analyze?analyzer=korean&pretty" -d '빨라짐'

echo "# 슬프/V"
curl -XGET "${ES}/${ESIDX}/_analyze?analyzer=korean&pretty" -d '슬픈'

echo "# 새롭/V 사전/N 생성/N"
curl -XGET "${ES}/${ESIDX}/_analyze?analyzer=korean&pretty" -d '새로운사전생성'

echo "# 낄끼/N 빠빠/N c++/N"
curl -XGET "${ES}/${ESIDX}/_analyze?analyzer=korean&pretty" -d '낄끼빠빠 c++'





2016년 12월 15일 목요일

elasticsearch-analysis-seunjeon 5.1.1.0 배포합니다.

기능상 변경 없이 elasticsearch 5.1.1 버전에 맞게 새로 빌드하였습니다.

앞으로는 기능추가 없이 단순 elasticsearch 버전에 맞추는 릴리즈는 따로 공지하지 않겠습니다.
릴리즈 목록은 bitbucket README 에 명시하겠습니다.

감사합니다.

2016년 11월 6일 일요일

elasticsearch-analysis-seunjeon 5.0.0.0 배포합니다.

elasticsearch 5.0.0 지원 plugin 배포합니다. 추가된 기능은 없습니다. elastic팀 가이드대로 java 8 이상에서 실행해야 합니다.

추가나 수정된 기능은 없습니다.

소스 및 메뉴얼



설치

./bin/elasticsearch-plugin install https://oss.sonatype.org/service/local/repositories/releases/content/org/bitbucket/eunjeon/elasticsearch-analysis-seunjeon/5.0.0.0/elasticsearch-analysis-seunjeon-5.0.0.0.zip

seunjeon-1.2.0 배포합니다.

추가된 기능은 없습니다. scala 2.12을 새롭게 지원합니다. 호환성 문제로 scala2.10은 더이상 지원하지 않습니다. 2.10을 사용하시려면 seunjeon-1.1.1 을 사용하시면 됩니다.



versionscala(java)note
1.2.02.11(1.7), 2.12(1.8)추가기능 없음
1.1.12.10(1.7), 2.11(1.7)

Maven

<dependencies>
    <dependency>
        <groupId>org.bitbucket.eunjeon</groupId>
        <artifactId>seunjeon_2.11</artifactId>
        <version>1.2.0</version>
    </dependency>
</dependencies>

SBT

libraryDependencies += "org.bitbucket.eunjeon" %% "seunjeon" % "1.2.0"

변경내용

  • scala-csv 라이브러리 제거.
  • scala2.12 지원

2016년 9월 28일 수요일

elasticsearch-analysis-seunjeon 2.4.0.1 배포합니다.

elasticsearch plugin 2.4.0.1 배포합니다.

수정내용:

몇몇 단어에대해 deinflect 안되는 문제 해결.

소스 및 메뉴얼


설치

./bin/plugin install org.bitbucket.eunjeon/elasticsearch-analysis-seunjeon/2.4.0.1