- Plugin 구조
- Site Plugin
- JVM Plugin
- 유용한 Plugin
- 한글 형태소 분석기 Plugin
- 참고 문헌
ElasticSearch의 Plugin을 정리 합니다.
Plugin 구조
'''Plugin 설치 프로그램'''
설치 프로그램 : org.elasticsearch.plugins.PluginManager
{| border="1" cellspacing="0" cellpadding="2" style="width: 100%;"
|-
| style="text-align: center; background-color: rgb(241, 241, 241);" rowspan="1" colspan="2" | 옵션
| style="text-align: center; background-color: rgb(241, 241, 241);" | 상세
|-
| style="text-align: center;" | -u
| style="text-align: center;" | -url ~
Plugin 설치 파일 (~.zip) 다운로드 URL |
---|
style="text-align: center;" |
style="text-align: center;" |
설치할 Plugin 이름 plugins/Plugin_이름/ 폴더에 설치됨 |
[username/]pluginname/version
user : username 사용
pluginname : pluginname이 "elasticsearch-" 또는 "es-"로 시작하면 이 부분을 삭제한 후 사용
repo : 원본 pluginname 사용
|-
| style="text-align: center;" | -t
| style="text-align: center;" | -timeout ~
타임아웃 설정 (30s, 1m, 1h, ...) |
---|
style="text-align: center;" |
style="text-align: center;" |
삭제할 Plugin 이름 |
- |
style="text-align: center;" |
style="text-align: center;" |
설치된 Plugin 목록 표시 |
- |
style="text-align: center;" |
style="text-align: center;" |
상세 정보 표시 |
- |
style="text-align: center;" |
style="text-align: center;" |
Silent 모드로 실행 |
- |
style="text-align: center;" |
style="text-align: center;" |
도움말 표시 |
} |
'''Plugin 설치 파일 다운로드 위치'''
- "[https://github.com/](https://github.com/)" + user + "/" + repo + "/archive/master.zip"
- "[http://download.elasticsearch.org/](http://download.elasticsearch.org/)" + user + "/" + repo + "/" + repo + "-" + version + ".zip"
- "[http://search.maven.org/remotecontent?filepath=](http://search.maven.org/remotecontent?filepath=)" + user.replace('.', '/') + "/" + repo + "/" + version + "/" + repo + "-" + version + ".zip"
- "[https://oss.sonatype.org/service/local/repositories/releases/content/](https://oss.sonatype.org/service/local/repositories/releases/content/)" + user.replace('.', '/') + "/" + repo + "/" + version + "/" + repo + "-" + version + ".zip"
- "[https://github.com/](https://github.com/)" + user + "/" + repo + "/archive/" + version + ".zip"
'''Plugin 설치 파일 폴더 구조'''
~.zip 파일
{| border="1" cellspacing="0" cellpadding="2" style="width: 100%;"
|-
| style="text-align: center; background-color: rgb(241, 241, 241);" rowspan="1" colspan="2" | 폴더
| style="text-align: center; background-color: rgb(241, 241, 241);" | 상세
|-
| 플러그인명-버전/
|
|
- 기본적으로 모든 파일은 plugins/플러그인명/ 폴더에 배포 됩니다.
- bin/, config/, _site/ 폴더가 없고 - .class/.jar 파일이 없는 경우, plugins/플러그인명/_site/ 폴더에 배포 됩니다. - .class/.jar 파일이 있을 경우, plugins/플러그인명/ 폴더에 배포 됩니다.
index.html : 시작 페이지
bin/플러그인명/ 폴더에 배포 됩니다.
config/플러그인명/ 폴더에 배포 됩니다.
plugin=org.elasticsearch.plugin.analysis.kr.AnalysisKoreanPlugin : Plugin 등록 파일
*org.elasticsearch.plugins.AbstractPlugin 파일을 구현한 class
version=~ : Plugin 버전
description=~ : Plugin 설명
lucene=~ : Lucene 버전
SourceForge : http://sourceforge.net/projects/lucenekorean
SVN : https://lucenekorean.svn.sourceforge.net/svnroot/lucenekorean
CVS : d:pserver:anonymous@lucenekorean.cvs.sourceforge.net:/cvsroot/lucenekorean
설치 후 확인
동작 확인
korea 인덱스 삭제
|-
|
| _site/
|
|-
|
| bin/
|
|-
|
| config/
|
|-
|
| _dict/
|
|}
Site Plugin
plugins/head/_site/ 폴더가 생성 됩니다.
http://node111.jopenbusiness.com:9200/_plugin/head/ URL로 접속할 수 있습니다.
JVM Plugin
jar 파일로 JVM Plugin을 구성 합니다.
'''es-plugin.properties 파일'''
'''Plugin 등록 파일 구성'''
{| border="1" cellspacing="0" cellpadding="2" style="width: 100%;"
|-
| style="text-align: center; background-color: rgb(241, 241, 241);" | 종류
| style="text-align: center; background-color: rgb(241, 241, 241);" | 관련 class
| style="text-align: center; background-color: rgb(241, 241, 241);" | 상세
|-
| style="text-align: center;" | name()
| style="text-align: center;" |
Plugin 이름 |
---|
style="text-align: center;" |
style="text-align: center;" |
Plugin 설명 |
- |
style="text-align: center;" |
style="text-align: center;" |
Node level modules org.elasticsearch.plugins.PluginsModule |
- |
style="text-align: center;" |
style="text-align: center;" |
Per index modules org.elasticsearch.plugins.IndexPluginsModule |
- |
style="text-align: center;" |
style="text-align: center;" |
Per index shard module org.elasticsearch.plugins.ShardPluginsModule |
- |
style="text-align: center;" |
style="text-align: center;" |
Node level services |
- |
style="text-align: center;" |
style="text-align: center;" |
Per index services |
- |
style="text-align: center;" |
style="text-align: center;" |
Per index shard services |
- |
style="text-align: center;" |
style="text-align: center;" |
- |
style="text-align: center;" |
style="text-align: center;" |
Plugin이 로딩될 때 추가되는 node 설정 |
- |
style="text-align: center;" |
style="text-align: center;" |
모듈이 로딩될 때, 실행되는 함수 |
} |
참고 문헌
유용한 Plugin
{| border="1" cellspacing="0" cellpadding="2" style="width: 100%;"
|-
| style="text-align: center; background-color: rgb(241, 241, 241);" | 종류
| style="text-align: center; background-color: rgb(241, 241, 241);" | Plugin
| style="text-align: center; background-color: rgb(241, 241, 241);" | 상세
|-
| style="text-align: center;" | Site
| style="text-align: center;" | Korean Analytis 한글 형태소 분석기
plugin -install chanil1218/elasticsearch-analysis-korean/1.3.0 또는 plugin -url https://dl-web.dropbox.com/spa/grpekzky9x5y6mc/elastic-analysis-korean/public/elasticsearch-analysis-korean-1.3.0.zip -install analysis-korean |
---|
style="text-align: center;" |
style="text-align: center;" |
인덱스와 샤드, 도큐먼트에 대한 관리 및 상태 점검 기본적인 검색 질의 기능 제공 plugin -install mobz/elasticsearch-head http://node111.jopenbusiness.com:9200/_plugin/head/ |
- |
style="text-align: center;" |
style="text-align: center;" |
노드에 대한 stats 정보를 인덱스에 색인하여 검색과 대시보드 형태로 제공 [http://www.jopenbusiness.com/mediawiki/Logstash Logstash]와 [http://www.jopenbusiness.com/mediawiki/Kibana Kibana] 기반으로 구성 plugin -i elasticsearch/marvel/latest http://node111.jopenbusiness.com:9200/_plugin/marvel/ |
- |
style="text-align: center;" |
style="text-align: center;" |
실시간으로 서버와 검색 엔진의 상태, 자원 현황을 실시간 모니터링 plugin -install lukas-vlcek/bigdesk http://node111.jopenbusiness.com:9200/_plugin/bigdesk/ |
- |
style="text-align: center;" |
style="text-align: center;" |
REST API를 실행하고 결과를 확인 plugin -install bleskes/sense http://node111.jopenbusiness.com:9200/_plugin/sense/ |
- |
style="text-align: center;" |
style="text-align: center;" |
head와 bigdesk의 기능이 합쳐진 plugin plugin -install royrusso/elasticsearch-HQ http://node111.jopenbusiness.com:9200/_plugin/HQ/ |
- |
style="text-align: center;" |
style="text-align: center;" |
검색 질의와 결과를 제공 plugin -install andrewvc/elastic-hammer http://node111.jopenbusiness.com:9200/_plugin/elastic-hammer/ |
- |
style="text-align: center;" |
style="text-align: center;" |
검색 질의와 결과를 제공 형태소 분석 기능 제공 plugin -install polyfractal/elasticsearch-inquisitor http://node111.jopenbusiness.com:9200/_plugin/inquisitor/ |
- |
style="text-align: center;" |
style="text-align: center;" |
실시간 서버 모니터링 (bigdesk와 유사) plugin -install karmi/elasticsearch-paramedic http://node111.jopenbusiness.com:9200/_plugin/paramedic/ |
- |
style="text-align: center;" |
style="text-align: center;" |
인덱스와 샤드 정보 제공 plugin -install polyfractal/elasticsearch-segmentspy http://node111.jopenbusiness.com:9200/_plugin/segmentspy/ |
} |
한글 형태소 분석기 Plugin
Korean Analysis for ElasticSearch (http://github.com/chanil1218/elasticsearch-analysis-korean) 사이트에서 한글 형태소 분석기 Plugin을 설치 합니다. ElasticSearch용 한글 형태소 분석기 Plugin은 "루씬 한글분석기 오픈소스 프로젝트"를 가져와 작성이 되었습니다.
루씬 한글분석기 오픈소스 프로젝트
'''한글 형태소 분석기 Plugin 설치'''
{| cellspacing="1" cellpadding="1" style="font-size: 14px; color: rgb(37, 37, 37); font-family: sans-serif; line-height: 20.7999992370605px; width: 100%;"
|-
| style="background-color: rgb(241, 241, 241);" |
bin/plugin -install chanil1218/elasticsearch-analysis-korean/1.3.0
만일 위 명령어로 설치시 오류가 발생하면 아래와 명령어로 설치를 다시 진행 합니다.
bin/plugin -url https://dl-web.dropbox.com/spa/grpekzky9x5y6mc/elastic-analysis-korean/public/elasticsearch-analysis-korean-1.3.0.zip -install analysis-korean
|}
설치가 정상적으로 완료되면 plugins/analysis-korean/elasticsearch-analysis-korean-1.3.0.jar 파일을 확인할 수 있습니다.
curl -XDELETE 'node201.hadoop.com:9200/korea?pretty'
- korea 인덱스 생성
#curl -XDELETE 'node201.hadoop.com:9200/korea?pretty'
curl -XPUT 'node201.hadoop.com:9200/korea?pretty' -d '{
"settings": {
"index": {
"analysis": {
"analyzer": {
"kr_analyzer": {
"type": "org.elasticsearch.index.analysis.KoreanAnalyzerProvider",
"tokenizer": "KoreanTokenizer",
"filter": ["trim", "lowercase", "KoreanFilter" ]()
}
}
}
}
}
}'
- KoreanAnalyzer 동작 확인
### curl -XGET 'node201.hadoop.com:9200/korea/_analyze?pretty&analyzer=kr_analyzer&text=이전 글에서 ElasticSearch와 Arirang 형태소 분석기를 살펴 보았습니다.'
curl -XGET 'node201.hadoop.com:9200/korea/_analyze?pretty&analyzer=kr_analyzer&text=%EC%9D%B4%EC%A0%84%20%EA%B8%80%EC%97%90%EC%84%9C%20ElasticSearch%EC%99%80%20Arirang%20%ED%98%95%ED%83%9C%EC%86%8C%20%EB%B6%84%EC%84%9D%EA%B8%B0%EB%A5%BC%20%EC%82%B4%ED%8E%B4%20%EB%B3%B4%EC%95%98%EC%8A%B5%EB%8B%88%EB%8B%A4.'
[http://node201.hadoop.com:9200/korea/_analyze?pretty&analyzer=kr_analyzer&text=이전%20글에서%20ElasticSearch와%20Arirang%20형태소%20분석기를%20살펴%20보았습니다](http://node201.hadoop.com:9200/korea/_analyze?pretty&analyzer=kr_analyzer&text=이전%20글에서%20ElasticSearch와%20Arirang%20형태소%20분석기를%20살펴%20보았습니다).
elasticsearch-analysis-korean-1.3.0.jar 파일 구조
es-plugin.properties
plugin=org.elasticsearch.plugin.analysis.kr.AnalysisKoreanPlugin
packages
org.apache.lucene.analysis.kr
dic/
KoreanAnalyzer.java
KoreanFilter.java
KoreanTokenizer.java
org.apache.solr.analysis.kr
KoreanFilterFactory.java
KoreanTokenizerFactory
org.elasticsearch.index.analysis
KoreanAnalysisBinderProcessor.java
KoreanAnalyzerProvider.java
KoreanFilterFactory.java
KoreanTokenizerFactory.java
org.elasticsearch.plugin.analysis.kr
AnalysisKoreanPlugin.java
프로그램 호출 구조
AnalysisKoreanPlugin.java : AnalysisModule로 KoreanAnalysisBinderProcessor 등록
KoreanAnalysisBinderProcessor.java : Analyzer, Tokenizer, Filter 등록
KoreanAnalyzerProvider.java (kr_analyzer) -> KoreanAnalyzer
KoreanTokenizerFactory.java (kr_tokenizer) -> KoreanTokenizer
KoreanFilterFactory.java (kr_filter) -> KoreanFilter
참고 문헌
[[Category:Search|Category:Search]]분류: BigData