GET http://IPADRESS:9200/activities/_search{ "size": 0, "aggs": { "uniq_type": { "terms": { "field": "type" } } } }
GET http://IPADRESS:9200/activities/_search
{
"size": 0,
"aggs": {
"uniq_type": {
"terms": {
"field": "type"
}
}
}
}
'Programming > ElasticSearch' 카테고리의 다른 글
과거엔 SearchRequestBuilder에 internalBuilder()라는 method가 있었지만, 지금은 toString() 내부에서 수행되는 것으로 변경되었습니다. SearchRequestBuilder sb = client.prepareSearch("activities") .setQuery(queryBuilder) .setSize(0) .addAggregation(sigterm); logger.info("internal query : " + sb.toString());
과거엔 SearchRequestBuilder에 internalBuilder()라는 method가 있었지만, 지금은 toString() 내부에서 수행되는 것으로 변경되었습니다.
SearchRequestBuilder sb = client.prepareSearch("activities")
.setQuery(queryBuilder)
.setSize(0)
.addAggregation(sigterm);
logger.info("internal query : " + sb.toString());
'Programming > ElasticSearch' 카테고리의 다른 글
특정인덱스의 field 값을 distinct하게 뽑아 내기 (772) | 2017.12.19 |
---|---|
ES Java client 사용시 availableProcessors is already set to [8], rejecting [8] 발생 (388) | 2017.10.31 |
Elasticsearch java client 사용시 java.lang.NoClassDefFoundError: org/elasticsearch/plugins/NetworkPlugin 발생하는 경우 (0) | 2017.10.31 |
인덱스 안의 모든 타입의 xxx field의 fielddata를 true로 세팅 (402) | 2017.10.27 |
no [query] registered for [filtered] 오류가 나며 filtered query가 에러나는 경우 (0) | 2017.10.25 |
netty를 사용하는 모듈과 충돌이 발생하는 경우이다. Elasticsearch client 초기화 시점을 앞당기거나 system property es.set.netty.runtime.available.processors 를 false로 세팅해서 해결한다. java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8]at io.netty.util.NettyRuntime$AvailableProcessorsHolder.setAvailableProcessors(NettyRuntime.java:51)at io.netty.util.NettyRuntime.setAvailableProcessors(NettyRuntime..
netty를 사용하는 모듈과 충돌이 발생하는 경우이다.
Elasticsearch client 초기화 시점을 앞당기거나 system property es.set.netty.runtime.available.processors 를 false로 세팅해서 해결한다.
java.lang.IllegalStateException: availableProcessors is already set to [8], rejecting [8]
at io.netty.util.NettyRuntime$AvailableProcessorsHolder.setAvailableProcessors(NettyRuntime.java:51)
at io.netty.util.NettyRuntime.setAvailableProcessors(NettyRuntime.java:87)
at org.elasticsearch.transport.netty4.Netty4Utils.setAvailableProcessors(Netty4Utils.java:87)
at org.elasticsearch.transport.netty4.Netty4Transport.<init>(Netty4Transport.java:139)
at org.elasticsearch.transport.Netty4Plugin.lambda$getTransports$0(Netty4Plugin.java:93)
at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:174)
at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:265)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:130)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:116)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:106)
at kr.bluewhale.elastic.broker.ElasticQueryThread.run(ElasticQueryThread.java:40)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
System.setProperty("es.set.netty.runtime.available.processors", "false");
'Programming > ElasticSearch' 카테고리의 다른 글
특정인덱스의 field 값을 distinct하게 뽑아 내기 (772) | 2017.12.19 |
---|---|
Elasticsearch Java client DSL로 작성한 Request의 실제 Query 확인하기 (0) | 2017.11.01 |
Elasticsearch java client 사용시 java.lang.NoClassDefFoundError: org/elasticsearch/plugins/NetworkPlugin 발생하는 경우 (0) | 2017.10.31 |
인덱스 안의 모든 타입의 xxx field의 fielddata를 true로 세팅 (402) | 2017.10.27 |
no [query] registered for [filtered] 오류가 나며 filtered query가 에러나는 경우 (0) | 2017.10.25 |
아래와 같이 Elasticsearch java client 사용시 java.lang.NoClassDefFoundError: org/elasticsearch/plugins/NetworkPlugin 발생하거나 FiltersAggregator.KeyedFilter와 같은 API들을 찾을 수 없는 경우가 있다. java.lang.NoClassDefFoundError: org/elasticsearch/plugins/NetworkPluginat java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:763)at java.security.SecureClassLoader.defineClass..
아래와 같이 Elasticsearch java client 사용시 java.lang.NoClassDefFoundError: org/elasticsearch/plugins/NetworkPlugin 발생하거나 FiltersAggregator.KeyedFilter와 같은 API들을 찾을 수 없는 경우가 있다.
java.lang.NoClassDefFoundError: org/elasticsearch/plugins/NetworkPlugin
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.elasticsearch.transport.client.PreBuiltTransportClient.<clinit>(PreBuiltTransportClient.java:88)
at kr.bluewhale.elastic.broker.ElasticQueryThread.run(ElasticQueryThread.java:37)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.plugins.NetworkPlugin
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 16 more
그럴땐, org.elasticsearch.elasticsearch가 dependency에 정의되어있는지 확인해보자.
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.6.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.6.3</version>
</dependency>
'Programming > ElasticSearch' 카테고리의 다른 글
Elasticsearch Java client DSL로 작성한 Request의 실제 Query 확인하기 (0) | 2017.11.01 |
---|---|
ES Java client 사용시 availableProcessors is already set to [8], rejecting [8] 발생 (388) | 2017.10.31 |
인덱스 안의 모든 타입의 xxx field의 fielddata를 true로 세팅 (402) | 2017.10.27 |
no [query] registered for [filtered] 오류가 나며 filtered query가 에러나는 경우 (0) | 2017.10.25 |
Elasticsearch) Painless script를 이용해서 값을 변경하기 (0) | 2017.10.19 |
'Programming > ElasticSearch' 카테고리의 다른 글
ES Java client 사용시 availableProcessors is already set to [8], rejecting [8] 발생 (388) | 2017.10.31 |
---|---|
Elasticsearch java client 사용시 java.lang.NoClassDefFoundError: org/elasticsearch/plugins/NetworkPlugin 발생하는 경우 (0) | 2017.10.31 |
no [query] registered for [filtered] 오류가 나며 filtered query가 에러나는 경우 (0) | 2017.10.25 |
Elasticsearch) Painless script를 이용해서 값을 변경하기 (0) | 2017.10.19 |
X-Pack 인증 Bypass하기 (0) | 2017.10.11 |
아래와 같이 filtered query를 수행하면 no [query] registered for [filtered] 오류가 발생한다. ES 5.0 이후부터 filtered query가 deprecated되었기 때문으로 아래처럼 bool query로 변경한다.
아래와 같이 filtered query를 수행하면 no [query] registered for [filtered] 오류가 발생한다.
ES 5.0 이후부터 filtered query가 deprecated되었기 때문으로 아래처럼 bool query로 변경한다.
'Programming > ElasticSearch' 카테고리의 다른 글
Elasticsearch java client 사용시 java.lang.NoClassDefFoundError: org/elasticsearch/plugins/NetworkPlugin 발생하는 경우 (0) | 2017.10.31 |
---|---|
인덱스 안의 모든 타입의 xxx field의 fielddata를 true로 세팅 (402) | 2017.10.27 |
Elasticsearch) Painless script를 이용해서 값을 변경하기 (0) | 2017.10.19 |
X-Pack 인증 Bypass하기 (0) | 2017.10.11 |
은전한닢 설치하기 (599) | 2017.10.11 |
https://www.elastic.co/guide/en/elasticsearch/painless/5.6/painless-examples.html curl -XPUT 'http://35.200.56.48:9200/online-shop' curl -XPUT 'http://35.200.56.48:9200/online-shop/_mapping/shirts' -d '{"shirts": {"properties": { "caption": { "type": "string"}, "price": {"type": "long"}}}}' curl -XPUT 'http://35.200.56.48:9200/online-shop/shirts/1' -d '{ "caption": "Learning ES", "price": 15}' c..
https://www.elastic.co/guide/en/elasticsearch/painless/5.6/painless-examples.html
curl -XPUT 'http://35.200.56.48:9200/online-shop'
curl -XPUT 'http://35.200.56.48:9200/online-shop/_mapping/shirts' -d '{
"shirts": {
"properties": {
"caption": {
"type": "string"
},
"price": {
"type": "long"
}
}
}
}'
curl -XPUT 'http://35.200.56.48:9200/online-shop/shirts/1' -d '{
"caption": "Learning ES",
"price": 15
}'
curl -XPOST 'http://35.200.56.48:9200/online-shop/shirts/1/_update' -d '{
"script": {
"lang": "painless",
"source": "ctx._source.price += params.price_diff",
"params": {
"price_diff": 10
}
}
}'
'Programming > ElasticSearch' 카테고리의 다른 글
인덱스 안의 모든 타입의 xxx field의 fielddata를 true로 세팅 (402) | 2017.10.27 |
---|---|
no [query] registered for [filtered] 오류가 나며 filtered query가 에러나는 경우 (0) | 2017.10.25 |
X-Pack 인증 Bypass하기 (0) | 2017.10.11 |
은전한닢 설치하기 (599) | 2017.10.11 |
Elasticsearch 실행시 vm.max_map_count [65530] is too low 오류 수정 방법 (1) | 2017.10.11 |
elasticsearch.yml이나 kibana.yml에서 아래와 같이 설정하고 재시작 xpack.security.enabled: false 참고링크) https://stackoverflow.com/questions/37508655/how-to-disable-elasticsearch-5-0-authentication
elasticsearch.yml이나 kibana.yml에서 아래와 같이 설정하고 재시작
xpack.security.enabled: false
참고링크)
https://stackoverflow.com/questions/37508655/how-to-disable-elasticsearch-5-0-authentication
'Programming > ElasticSearch' 카테고리의 다른 글
인덱스 안의 모든 타입의 xxx field의 fielddata를 true로 세팅 (402) | 2017.10.27 |
---|---|
no [query] registered for [filtered] 오류가 나며 filtered query가 에러나는 경우 (0) | 2017.10.25 |
Elasticsearch) Painless script를 이용해서 값을 변경하기 (0) | 2017.10.19 |
은전한닢 설치하기 (599) | 2017.10.11 |
Elasticsearch 실행시 vm.max_map_count [65530] is too low 오류 수정 방법 (1) | 2017.10.11 |
mecab-ko-dic 설치mecab-ko-dic은 오픈 소스 형태소 분석 엔진인 MeCab을 사용하여, 한국어 형태소 분석을 하기 위한 프로젝트입니다. 말뭉치 학습과 사전 목록 일부는 21세기 세종계획의 성과물을 사용하였습니다.mecab-ko-dic은 21세기 세종계획 모든 현대 말뭉치에서 50문장씩을 추출하여 학습에 이용하였습니다. (총 23,615 문장) mecab-ko-dic은 아파치 라이센스 2.0에 따라 소프트웨어를 사용, 재배포 할 수 있습니다.설치 및 사용mecab-ko-dic을 설치하고 사용하기 위해서 다음과 같은 작업이 필요합니다. 모든 작업은 Linux 기준입니다. 양해바랍니다.mecab-ko 설치mecab-ko는 한국어의 특성에 맞는 기능이 추가된 MeCab의 fork 프로젝트입니다..
mecab-ko-dic 설치
mecab-ko-dic은 오픈 소스 형태소 분석 엔진인 MeCab을 사용하여, 한국어 형태소 분석을 하기 위한 프로젝트입니다. 말뭉치 학습과 사전 목록 일부는 21세기 세종계획의 성과물을 사용하였습니다.
mecab-ko-dic은 21세기 세종계획 모든 현대 말뭉치에서 50문장씩을 추출하여 학습에 이용하였습니다. (총 23,615 문장)
mecab-ko-dic은 아파치 라이센스 2.0에 따라 소프트웨어를 사용, 재배포 할 수 있습니다.
설치 및 사용
mecab-ko-dic을 설치하고 사용하기 위해서 다음과 같은 작업이 필요합니다. 모든 작업은 Linux 기준입니다. 양해바랍니다.
mecab-ko 설치
mecab-ko는 한국어의 특성에 맞는 기능이 추가된 MeCab의 fork 프로젝트입니다.
mecab-ko 다운로드 페이지 에서 mecab-ko의 소스를 다운 받고 설치합니다. tar.gz를 압축 해제하시고 일반적인 자유 소프트웨어와 같은 순서로 설치할 수 있습니다.
$ tar zxfv mecab-XX-ko-XX.tar.gz $ cd mecab-XX-ko-XX $ ./configure $ make $ make check $ su # make install
자세한 내용은 다음의 URL을 참조하시기 바랍니다.
mecab-ko-dic 다운로드
mecab-ko-dic 다운로드 페이지 에서 mecab-ko-dic의 최신 버전을 다운 받습니다.
mecab-ko-dic 설치
tar.gz를 압축 해제하시고 일반적인 자유 소프트웨어와 같은 순서로 설치할 수 있습니다. 기본으로 /usr/local/lib/mecab/dic/mecab-ko-dic에 설치됩니다.
$ tar zxfv mecab-ko-dic-XX.tar.gz $ cd mecab-ko-dic-XX $ ./configure $ make $ su # make install
automake 버전 문제로 설치 도중 에러가 나는 경우, 다음과 같이 할 수 있습니다.
- automake1.11 설치 후, 위와 동일하게 재시도 혹은,
autogen.sh 실행 후 재시도
$ tar zxfv mecab-ko-dic-XX.tar.gz $ cd mecab-ko-dic-XX $ ./autogen.sh $ configure $ make $ su # make install
libmecab.so.2를 찾을 수 없는 에러가 나는 경우, 다음과 같이 할 수 있습니다.
라이브러리를 다시 링크하고 확인후 재시도
$ sudo ldconfig
사용
다음과 같이 mecab을 실행하여 한국어 형태소 분석 결과를 보실 수 있습니다.
$ mecab -d /usr/local/lib/mecab/dic/mecab-ko-dic mecab-ko-dic은 MeCab을 사용하여, 한국어 형태소 분석을 하기 위한 프로젝트입니다. mecab SL,*,*,*,*,*,*,* - SY,*,*,*,*,*,*,* ko SL,*,*,*,*,*,*,* - SY,*,*,*,*,*,*,* dic SL,*,*,*,*,*,*,* 은 JX,*,T,은,*,*,*,* MeCab SL,*,*,*,*,*,*,* 을 JKO,*,T,을,*,*,*,* 사용 NNG,*,T,사용,*,*,*,* 하 XSV,*,F,하,*,*,*,* 여 EC,*,F,여,*,*,*,* , SC,*,*,*,*,*,*,* 한국어 NNG,*,F,한국어,Compound,*,*,한국/NNG/*+어/NNG/* 형태소 NNG,*,F,형태소,Compound,*,*,형태/NNG/*+소/NNG/* 분석 NNG,*,T,분석,*,*,*,* 을 JKO,*,T,을,*,*,*,* 하 VV,*,F,하,*,*,*,* 기 ETN,*,F,기,*,*,*,* 위한 VV+ETM,*,T,위한,Inflect,VV,ETM,위하/VV/*+ᆫ/ETM/* 프로젝트 NNG,*,F,프로젝트,*,*,*,* 입니다 VCP+EF,*,F,입니다,Inflect,VCP,EF,이/VCP/*+ᄇ니다/EF/* . SF,*,*,*,*,*,*,* EOS
Elasticsearch Plugin 설치
Elasticsearch Plugin 설치는 아래와 같이 수행하면 되지만, 그냥 수행하면 최신 Elasticsearch와 버전이 맞지 않아 오류가 발생할 것이다.
$ ./bin/elasticsearch-plugin install https://bitbucket.org/eunjeon/mecab-ko-lucene-analyzer/issues/attachments/7/eunjeon/mecab-ko-lucene-analyzer/1486603969.8/7/elasticsearch-analysis-mecab-ko-5.2.0.0.zip
~/elasticsearch-5.6.1$ ./bin/elasticsearch-plugin install https://bitbucket.org/eunjeon/mecab-ko-l ucene-analyzer/issues/attachments/9/eunjeon/mecab-ko-lucene-analyzer/1500357175.91/9/elasticsearch-analysis-mecab-k o-5.5.0.0.zip -> Downloading https://bitbucket.org/eunjeon/mecab-ko-lucene-analyzer/issues/attachments/9/eunjeon/mecab-ko-lucene- analyzer/1500357175.91/9/elasticsearch-analysis-mecab-ko-5.5.0.0.zip [=================================================] 100% Exception in thread "main" java.lang.IllegalArgumentException: plugin [elasticsearch-analysis-mecab-ko] is incompat ible with version [5.6.1]; was designed for version [5.5.0] at org.elasticsearch.plugins.PluginInfo.readFromProperties(PluginInfo.java:146) at org.elasticsearch.plugins.InstallPluginCommand.verify(InstallPluginCommand.java:474) at org.elasticsearch.plugins.InstallPluginCommand.install(InstallPluginCommand.java:543) at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:217) at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:201) at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:67) at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:69) at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) at org.elasticsearch.cli.Command.main(Command.java:90)
최신버전의 plugin file을 https://bitbucket.org/eunjeon/mecab-ko-lucene-analyzer/issues?status=new&status=open 에서 찾아 다운받고 압축을 푼 다음 plugin-descriptor.properties 파일 내용중 elasticsearch.version을 현재 설치된 es version으로 수정한다.
elasticsearch.version=5.6.1
작업한 elasticsearch directory를 zip으로 다시 압축하고 아래 명령어를 수행한다.
zip -r elasticsearch ea561.zip
./bin/elasticsearch-plugin install file:/home/es/ea561.zip
참고링크)
- 은전한닢
https://bitbucket.org/eunjeon/mecab-ko-dic
http://blog.nacyot.com/articles/2015-06-13-eunjeon-with-elasticsearch/
- zip
https://askubuntu.com/questions/27349/how-do-i-compress-a-directory
- 한글 형태소 분석기
'Programming > ElasticSearch' 카테고리의 다른 글
인덱스 안의 모든 타입의 xxx field의 fielddata를 true로 세팅 (402) | 2017.10.27 |
---|---|
no [query] registered for [filtered] 오류가 나며 filtered query가 에러나는 경우 (0) | 2017.10.25 |
Elasticsearch) Painless script를 이용해서 값을 변경하기 (0) | 2017.10.19 |
X-Pack 인증 Bypass하기 (0) | 2017.10.11 |
Elasticsearch 실행시 vm.max_map_count [65530] is too low 오류 수정 방법 (1) | 2017.10.11 |
참고링크) https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode ~/elasticsearch-5.6.1/bin$ [2017-10-11T06:39:53,758][DEBUG][o.e.a.ActionModule ] Using REST wrapper from plugin org.elasticsearch.xpack.XPackPlugin[2017-10-11T06:39:55,926][INFO ][o.e.x.m.j.p.l.CppLogMessageHandler] [controller/16678] [Main.cc@128] controller (64 bit): Version 5.6.1 (Build ..
참고링크) https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-prod-mode
sudo sysctl -w vm.max_map_count=262144
'Programming > ElasticSearch' 카테고리의 다른 글
인덱스 안의 모든 타입의 xxx field의 fielddata를 true로 세팅 (402) | 2017.10.27 |
---|---|
no [query] registered for [filtered] 오류가 나며 filtered query가 에러나는 경우 (0) | 2017.10.25 |
Elasticsearch) Painless script를 이용해서 값을 변경하기 (0) | 2017.10.19 |
X-Pack 인증 Bypass하기 (0) | 2017.10.11 |
은전한닢 설치하기 (599) | 2017.10.11 |
- Total
- Today
- Yesterday
- PIP
- Paw
- spring #lombok
- IntelliJ
- MacOS
- ansible-container
- GCP
- AWS
- Elasticsearch
- Ansible
- pycharm
- Python
- kubernetes
- TDD
- git
- Spring Boot
- pymongo
- Redis
- PubSub
- boot2docker
- X-Pack
- mecab
- zsh
- MongoDB
- docker-machine
- Netty
- 은전한닢
- docker
- xpath
- scrapy
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |