Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

marpple/opensearch-seunjeon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

7 Commits

Repository files navigation

opensearch-seunjeon

opensearch로 한국어 검색 환경을 구축할 수 있는 eunjeon Plugin 설치
opensearch에 eunjeon plugin이 설치된 Docker image builder

Usage

Making plugin

# download plugin
bash <(curl -s https://raw.githubusercontent.com/Karoid/opensearch-seunjeon/main/scripts/downloader.sh) -e <opensearch-version> -p <plugin-version>
 에제) $ bash <(curl -s https://raw.githubusercontent.com/Karoid/opensearch-seunjeon/main/scripts/downloader.sh) -e 2.3.0 -p 2.3.0.0
# install plugin
$(dirname $(which opensearch))/opensearch-plugin install file://`pwd`/opensearch-analysis-seunjeon-<plugin-version>.zip
 예제) $ $(dirname $(which opensearch))/opensearch-plugin install file://`pwd`/opensearch-analysis-seunjeon-2.3.0.0.zip
  • downloader.sh 가 하는 일은 opensearch-analysis-seunjeon-.zip 파일을 내려받은 후 plugin-descriptor.properties 의 opensearch.version 을 변경하여 재압축합니다.
  • opensearch가 버전 업 될때마다 플러그인을 재배포하는데 어려움이 있어 스크립트를 제공합니다.

Usable Plugin Release

opensearch-analysis-seunjeon target opensearch release note
2.3.0.0 2.3.0

docker 단독 사용

docker hub에서 받아서 사용하는 경우

docker run -d -p 9200:9200 --rm -v opensearch:/usr/share/opensearch/data -e "discovery.type=single-node" karoid/opensearch-seunjeon:2.3.0.0

프로젝트로 빌드해서 사용하는 경우

docker build . --tag opensearch-seunjeon
docker run -d -p 9200:9200 --rm -v opensearch:/usr/share/opensearch/data -e "discovery.type=single-node" opensearch-seunjeon

docker-compose.yml으로 사용

version: "3.9"
services:
 elasticsearch:
 image: karoid/opensearch-seunjeon:2.3.0.0
 environment:
 - discovery.type=single-node
 - bootstrap.memory_lock=true
 - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
 ulimits:
 memlock:
 soft: -1
 hard: -1
 volumes:
 - opensearch:/usr/share/opensearch/data
 ports:
 - 9200:9200
opensearch-analysis-seunjeon target opensearch release note
1.3.6.0 1.3.6 Compatible with opensearch 7.10
2.3.0.0 2.3.0

Testing

도커의 경우 opensearch 컨테이너에 들어간다.

curl -XPUT --insecure -u admin:admin 'https://localhost:9200/test/' -H 'Content-Type: application/json' -d '{
 "settings" : {
 "index":{
 "analysis":{
 "analyzer":{
 "korean":{
 "type":"custom",
 "tokenizer":"seunjeon_default_tokenizer"
 }
 },
 "tokenizer": {
 "seunjeon_default_tokenizer": {
 "type": "seunjeon_tokenizer",
 "index_eojeol": false
 }
 }
 }
 }
 },
 "mappings": {
 "properties" : {
 "text" : {
 "type" : "text",
 "analyzer": "korean"
 }
 }
 }
}'
curl -XGET --insecure -u admin:admin 'https://localhost:9200/test/_analyze?pretty=true' -H 'Content-Type: application/json' -d '{"analyzer": "korean","text": "아버지가 방에 들어간다"}'

이렇게 입력했을 때 다음 응답이 나오면 제대로 설치가 된 것이다

{
 "tokens" : [
 {
 "token" : "아버지/N",
 "start_offset" : 0,
 "end_offset" : 3,
 "type" : "N",
 "position" : 0
 },
 {
 "token" : "방/N",
 "start_offset" : 5,
 "end_offset" : 6,
 "type" : "N",
 "position" : 1
 },
 {
 "token" : "들어가/V",
 "start_offset" : 8,
 "end_offset" : 11,
 "type" : "V",
 "position" : 2
 }
 ]
}

Building new version of plugin zip file

만약 opensearch 버전이 올라가고 opensearch-seunjeon 프로젝트에 최신 버전의 플러그인 코드가 공개된다면 다음 명령으로 플러그인을 다시 빌드할 수 있습니다.

mkdir -p build
docker run -it --name plugin-builder -v $(pwd)/build:/tmp/build -v $(pwd)/scripts:/tmp/scripts mozilla/sbt:8u292_1.5.7 bash
# container bash 진입 > dictionary 생성
chmod 700 /tmp/scripts/*
/tmp/scripts/zip-builder.sh
# zip 생성
cd /tmp/build/seunjeon-opensearch && sbt
sbt:opensearch-analysis-seunjeon> project opensearch
sbt:opensearch-analysis-seunjeon> opensearchZip

다음 명령이 성공하면 build/opensearch-analysis-seunjeon/seunjeon-opensearch/opensearch/target/opensearch-analysis-seunjeon-assembly-2.3.0.jar에 파일이 만들어진다

만약 opensearchZip을 빌드할 때 사용하는 opensearch의 버전을 올리고 싶으면 zip-builder.sh의 다음 두 부분의 2.3.0을 변경하면 된다

sed -i '/val opensearchVersion = "1.0.0"/c\val opensearchVersion = "2.3.0"' build.sbt
sed -i '/val opensearchJarVersion = "1.0.0-beta1"/c\val opensearchJarVersion = "2.3.0"' build.sbt

Original Projects

seunjeon: 한국어 형태소분석기를 elasticsearch에 사용할 수 있도록 만든 plugin입니다.
opensearch-seunjeon: 기존의 elasticsearch에서 사용 가능하던 한국어 형태소 분석기를 opensearch에서 사용할 수 있도록 변경한 plugin입니다.

About

plugin installer and docker image builder for opensearch seunjeon plugin

Resources

License

Stars

Watchers

Forks

Packages

Contributors

Languages

  • Shell 67.8%
  • Dockerfile 32.2%

AltStyle によって変換されたページ (->オリジナル) /