상단

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/플러그인명/ 폴더에 배포 됩니다.
  • |- 
    |
     
    | _site/ |

    • index.html : 시작 페이지

     
     

    |- 
    |
     
    | bin/ |

    • bin/플러그인명/ 폴더에 배포 됩니다.

     
     

    |- 
    |
     
    | config/ |

    • config/플러그인명/ 폴더에 배포 됩니다.

     
     

    |- 
    |
     
    | _dict/ |
     
    |}

     

    Site Plugin


     

    plugins/head/_site/ 폴더가 생성 됩니다.

     

    http://node111.jopenbusiness.com:9200/_plugin/head/ URL로 접속할 수 있습니다.

     

    JVM Plugin


     

    jar 파일로 JVM Plugin을 구성 합니다.

     
     
     

    '''es-plugin.properties 파일'''

     
    • plugin=org.elasticsearch.plugin.analysis.kr.AnalysisKoreanPlugin : Plugin 등록 파일

    • *org.elasticsearch.plugins.AbstractPlugin 파일을 구현한 class

    • version=~ : Plugin 버전

    • description=~ : Plugin 설명

    • lucene=~ : Lucene 버전

     
     
     
     

    '''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 파일을 확인할 수 있습니다.

     
     
     

     
    • 설치 후 확인

      • 동작 확인

        • korea 인덱스 삭제

     
     
     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

    최종 수정일: 2024-09-30 12:26:18

    이전글 :
    다음글 :