Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Visualization
- 티스토리
- 리눅스
- 텐서플로
- Pandas
- 서평단
- 한빛미디어
- tensorflow
- 월간결산
- 한빛미디어서평단
- Linux
- 파이썬
- 블로그
- Tistory
- Google Analytics
- Blog
- MySQL
- 시각화
- Python
- 파이썬 시각화
- MATLAB
- 서평
- 통계학
- 딥러닝
- 매틀랩
- matplotlib
- python visualization
- 독후감
- SQL
- Ga
Archives
- Today
- Total
pbj0812의 코딩 일기
[빅데이터기술] ElasticSearch, Kibana에서 원하는 단어만 필터링하기 본문
0. 목표
- ElasticSearch, Kibana에서 원하는 단어만 필터링하기
1. 데이터 생성
1) library 호출
from elasticsearch import Elasticsearch
from elasticsearch import helpers
2) ES 연결
es = Elasticsearch('http://127.0.0.1:9200')
es.info()
3) 인덱스 생성 함수
def make_index(es, index_name):
if es.indices.exists(index=index_name):
es.indices.delete(index=index_name)
es.indices.create(index=index_name)
4) 테스트 데이터
index_name = 'filtering'
doc1 = {'word_text': '나는 소년 이다', 'price': 1}
doc2 = {'word_text': '나는 소년이다', 'price': 2}
doc3 = {'word_text': '나는소년이다', 'price': 3}
doc4 = {'word_text': '나는 소녀 다', 'price': 4}
doc5 = {'word_text': '나는 소년 소녀 이다', 'price': 5}
doc6 = {'word_text': '나는 소년소녀이다', 'price': 6}
5) 인덱스 생성
make_index(es, index_name)
6) 데이터 삽입
es.index(index=index_name, doc_type='string', body=doc1)
es.index(index=index_name, doc_type='string', body=doc2)
es.index(index=index_name, doc_type='string', body=doc3)
es.index(index=index_name, doc_type='string', body=doc4)
es.index(index=index_name, doc_type='string', body=doc5)
es.index(index=index_name, doc_type='string', body=doc6)
7) 새로고침
es.indices.refresh(index=index_name)
2. ES 에서 원하는 단어가 있는 결과만 추출
1) 소년이 들어간 결과 추출
results = es.search(index=index_name, body={'from':0, 'size':100, 'query':{'match':{'word_text':'소년'}}})
for result in results['hits']['hits']:
print('score:', result['_score'], 'source:', result['_source'])
- 결과
- 소년소녀 처럼 다른 단어와 결합되어 있는 것은 제외
score: 0.9517492 source: {'word_text': '나는 소년 이다', 'price': 1}
score: 0.82670164 source: {'word_text': '나는 소년 소녀 이다', 'price': 5}
2) 소년 소녀가 들어간 결과 추출
results = es.search(index=index_name, body={'from':0, 'size':100, 'query':{'match':{'word_text':'소녀 소년'}}})
for result in results['hits']['hits']:
print('score:', result['_score'], 'source:', result['_source'])
- 결과
- 소년 혹은 소녀가 들어간 결과 추출
score: 1.6534033 source: {'word_text': '나는 소년 소녀 이다', 'price': 5}
score: 0.9517492 source: {'word_text': '나는 소년 이다', 'price': 1}
score: 0.9517492 source: {'word_text': '나는 소녀 다', 'price': 4}
3. Kibana 에서 대쉬보드 생성
1) Kibana -> Visualize
2) Create visualization
3) Lens
4) word_text.keyword 를 가운데로 드래그하고 그래프 형태를 Data table 로 변경
5) Add filter -> Field 설정 -> Operator 설정 -> Save
6) 소년 소녀 -> Enter 키
7) Save
8) Kibana -> Dashboard
9) Add an existing
10) 원하는 차트 클릭
11) 완성
'빅데이터 > 빅데이터기술' 카테고리의 다른 글
[빅데이터기술] Grafana + ElasticSearch 시계열 대쉬보드 생성 (0) | 2020.12.30 |
---|---|
[빅데이터기술] Kibana에서 날짜를 기준으로 한 바 차트 생성 (0) | 2020.12.29 |
[빅데이터기술] docker 로 ElasticSearch + Kibana 연동 + python 연동을 통한 데이터 삽입 및 확인 (0) | 2020.12.19 |
[빅데이터기술] Docker redis 컨테이너 생성 및 jupyter notebook 에서 실행 (0) | 2020.12.13 |
[빅데이터기술] Docker 이미지 파일 생성 (0) | 2020.12.11 |
Comments