Elasticsearch란?
분산형 RESTful 실시간 검색 및 분석 엔진
보통 ELK Stack이라 해서 Elasticsearch, Logstash(수집 파이프라인), Kibana(시각화 도구)을 함께 사용한다.[참고]
Elasticsearch는 documents라고 하는 기본 데이터 단위가 있고, 이것이 index별로 관리되는 형태를 가진다. (간단히 말하면. 더 자세히 알아봐야겠지만..)
실습 환경
Windows 10 Home
Docker Toolbox
Docker 이미지 pull & run
$ docker pull docker.elastic.co/elasticsearch/elasticsearch:7.7.1
$ docker run -d --name elasticsearch-test
-p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.7.1
구동되는데 시간이 꽤 걸린다. 내 컴퓨터는 특히..
그리고 Docker Toolbox를 사용하기에 <가상머신 IP address>:9200에 접속하여 확인해봐야한다.
[Install Elasticsearch with Docker]
간단하게 설치 완료!
역시 도커는 매력적이다
Python Elasticsearch Client로 테스트해보기
https://github.com/elastic/elasticsearch-py
$ python -m venv venv
$ venv\Scripts\activate
$ pip install elasticsearch
from datetime import datetime
from elasticsearch import Elasticsearch
# by default, localhost:9200
es = Elasticsearch(hosts='<YOUR_VM_IP_ADDRESS>')
doc = {
'author': 'kimchy',
'text': 'Elasticsearch: cool. bonsai cool.',
'timestamp': datetime.now(),
}
res = es.index(index="test-index", id=1, body=doc)
print(res['result'])
res = es.get(index="test-index", id=1)
print(res['_source'])
es.indices.refresh(index="test-index")
res = es.search(index="test-index", body={"query": {"match_all": {}}})
print("Got %d Hits:" % res['hits']['total']['value'])
for hit in res['hits']['hits']:
print("%(timestamp)s %(author)s: %(text)s" % hit["_source"])
분산형 RESTfu
'etc' 카테고리의 다른 글
[Error solved] Not allowed to load local resource: kakao map api (0) | 2020.08.16 |
---|---|
[error solved][Docker ELK Stack] Kibana server is not ready yet (0) | 2020.06.15 |
[HTTP] HTTP Server 빌드하기 / 파이썬 사용 (0) | 2020.05.06 |
[Docker] 도커 간단 실습하기 2. 도커 이미지 생성하기 / ubuntu 14.04 기반 nginx 서버 도커 이미지 (0) | 2020.05.04 |
[Docker] 도커 간단 실습하기 1. 도커 사용하기: 기본 명령어 정리 / Windows 10 Home / Docker Compose (0) | 2020.05.04 |