728x90
소개
파이썬을 엘라스틱서치와 연동하는 방법에 대해 알아보려고 하는데요.
우선 원격 설정과 간단한 테스트까지 해보도록 하겠습니다.
서비스 시작
서비스를 시작합니다.
sudo systemctl start elasticsearch
각각 서비스 확인, 서비스 포트 확인 명령어입니다.
sudo systemctl status elasticsearch
netstat -antp
curl -X GET localhost:9200
curl 명령어를 이용해도 CRUD 를 할 수 있습니다.
해당 Elasticsearch 버전은 7.8 이네요.
curl -X GET localhost:9200
{
"name" : "dev",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "VwEer7NWSEefMi9XeBpEFQ",
"version" : {
"number" : "7.8.0",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
"build_date" : "2020-06-14T19:35:50.234439Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
원격 테스트
원격으로 테스트하는데 다음과 같이 에러가 발생합니다.
from elasticsearch import Elasticsearch
def create_index(index):
if not es.indices.exists(index=index):
return es.indices.create(index=index)
if __name__ == '__main__':
url = '192.168.111.176'
port = '9200'
es = Elasticsearch(f'{url}:{port}')
print(es)
r = create_index(index)
print(r)
elasticsearch.exceptions.ConnectionError: ConnectionError((<urllib3.connection.HTTPConnection object at 0x000002413D20C080>, 'Connection to 192.168.111.175 timed out. (connect timeout=10)')) caused by: ConnectTimeoutError((<urllib3.connection.HTTPConnection object at 0x000002413D20C080>, 'Connection to 192.168.111.175 timed out. (connect timeout=10)'))
서비스 포트를 확인해봅니다.
127.0.0.1:9200 으로 열려있는데요.
내부 아이피로 바인딩되어 있으면 내부에서만 접속할 수 있습니다.
외부에서도 접속할 수 있도록 환경파일을 설정해야합니다.
해당 파일을 열어서 다음과 같이 수정합니다.
/etc/elasticsearch/elasticsearch.yml
서비스를 재시작하고 서비스 포트를 확인해보면 127.0.0.1:9200 -> :::9200 로 바뀌었습니다.
다시 예제 코드를 실행해봅니다.
정상적으로 작동하네요.
....
es = Elasticsearch(f'{url}:{port}')
print(es)
r = create_index(index)
print(r)
<Elasticsearch([{'host': '192.168.111.176', 'port': 9200}])>
{'acknowledged': True, 'shards_acknowledged': True, 'index': 'news'}
'Language > Python' 카테고리의 다른 글
파이썬 쓰레드(Thread) 알아보기 - 1 (0) | 2020.08.12 |
---|---|
파이썬 엘라스틱서치(Elasticsearch) 연동 -2 : CRUD (0) | 2020.08.11 |
파이썬 명령행 옵션, 인자 사용하기 : argparse (0) | 2020.08.10 |
파이썬 추상 클래스(abc) 사용하기 (0) | 2020.08.10 |
파이썬 Tesseract 사용하기 -2 : 패키지 설치 / 예제 (0) | 2020.08.06 |