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 |
Tags
- Google Analytics
- 티스토리
- Pandas
- 서평
- 통계학
- 파이썬
- MySQL
- 매틀랩
- Blog
- 월간결산
- MATLAB
- 딥러닝
- SQL
- Python
- Visualization
- 리눅스
- Ga
- matplotlib
- 시각화
- 독후감
- 블로그
- python visualization
- 텐서플로
- 파이썬 시각화
- 한빛미디어서평단
- 한빛미디어
- Tistory
- tensorflow
- Linux
- 서평단
Archives
- Today
- Total
pbj0812의 코딩 일기
[PYTHON] python으로 Elasticsearch 연동 본문
1. elasticsearch 모듈 설치
- 버전에 맞는 pip를 사용하여 설치
pip install elasticsearch
2. elasticsearch 실행
- 콘솔 추가 및 elasticsearch를 실행
elasticsearch
3. python 작업
1) 라이브러리 불러오기
from elasticsearch import Elasticsearch
from elasticsearch import helpers
2) elasticsearch 연결
- elasticsearch의 주소 입력(로컬에 그냥 깔기만 했다면 127.0.0.1:9200)
es = Elasticsearch('http://127.0.0.1:9200')
es.info()
3) 함수 생성
- 만약, 동일한 이름의 인덱스가 있을 경우(exists) 삭제하고(delete) 생성(create)
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 = 'goods'
doc1 = {'goods_name': '삼성 노트북 9', 'price': 1000000}
doc2 = {'goods_name': '엘지 노트북 그램', 'price': 2000000}
doc3 = {'goods_name': '애플 맥북 프로', 'price': 3000000}
doc4 = {'goods_name': '맥북', 'price': 100000}
doc5 = {'goods_name': '맥복', 'price': 100000}
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=doc4)
es.index(index=index_name, doc_type='string', body=doc4)
7) 새로고침
- elasticsearch의 자동 새로고침의 시간은 1초 정도 소요
- 따라서 코드에 아래 명령어를 입력하지 않았을 경우 검색을 하지 못할 가능성도 존재
es.indices.refresh(index=index_name)
8) 검색
- 검색 rawdata : {'_index': 'goods', '_type': 'string', '_id': 'RFJb-m4BtZiSNET_64uo', '_score': 0.87138504, '_source': {'goods_name': '맥북', 'price': 100000}}
results = es.search(index=index_name, body={'from':0, 'size':100, 'query':{'match':{'goods_name':'맥북'}}})
for result in results['hits']['hits']:
print('score:', result['_score'], 'source:', result['_source'])
9) 결과
- 아래 결과는 새로 돌릴때 마다 바뀜...
score: 0.87138504 source: {'goods_name': '맥북', 'price': 100000}
score: 0.87138504 source: {'goods_name': '맥북', 'price': 100000}
score: 0.5754429 source: {'goods_name': '애플 맥북 프로', 'price': 3000000}
score: 0.2876821 source: {'goods_name': '맥북', 'price': 100000}
4. 참고문헌
- 코드 참고
'ComputerLanguage_Program > PYTHON' 카테고리의 다른 글
[Python] selenium 크롤러 제작 및 구글 스프레드 시트에 넣기 (2) | 2020.01.16 |
---|---|
[Python] python으로 구글 스프레드 시트에 작성하기 (0) | 2020.01.14 |
[PYTHON] Python에서 m-file 함수 사용하기(Oct2Py 소개) (3) | 2019.11.13 |
[PYTHON] __init__ (0) | 2019.08.28 |
[TENSORFLOW] WINDOW TENSORFLOW-GPU 버전 설치하기 (0) | 2018.10.30 |
Comments