엘라스틱서치는 역색인을 통해 풀텍스트서치를 지원해주어 검색의 속도와 성능이 뛰어나다고 들었다.
NLP 솔루션 과정에서 엘라스틱서치를 활용할 수 있는지 모색하기 위해 엘라스틱서치를 설치하고 파이썬 클라이언트 패키지를 활용해 노트북에서 사용해봤다.
내 환경 :
windows10 pro
WSL2
ubuntu 20.04.4 LTS
- Docker Image 내려받기
Docker Image(https://www.docker.elastic.co)에서 os 및 버전에 맞게 선택
docker pull [docker.elastic.co/elasticsearch/elasticsearch:8.3.0-amd64](<http://docker.elastic.co/elasticsearch/elasticsearch:8.3.0-amd64>)
- 파이썬 클라이언트 패키지 설치, 엘라스틱 버전에 맞춰서 버전 설정해서 설치
pip3 install elasticsearch==8.3.0
- Elasticsearch Docker 실행
sudo dockr run -d --name elasticsearch8 -p9200:9200 -p9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:8.3.0
3. 프로세스 확인
sudo docker ps
4. 테스트 확인
sudo curl https://127.0.0.1:9200/
여기서 에러가 발생했다.
여러 참고 블로그에서는 elasticsearch가 잘 확인이 된다고 나오는데, 나는 분명 도커가 실행되고 있으나
curl: (52) Empty reply from server
에러 메세지가 나왔다.
블로그 참고에 의하면 8점대 버전에서만 이런 문제가 있다고. 블로그를 하나씩 따라했더니 터미널에서는 문제가 해결되어 다음과 같이 확인이 잘 되었다.
{
"name" : "03c31b4b164a",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "FOHPaJb-THCJ4o7L16mGEw",
"version" : {
"number" : "8.3.0",
"build_type" : "docker",
"build_hash" : "5b8b981647acdf1ba1d88751646b49d1b461b4cc",
"build_date" : "2022-06-23T22:48:49.607492124Z",
"build_snapshot" : false,
"lucene_version" : "9.2.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
뒤이어 이 포스팅을 참고하여 시각화 툴인 Kibana도 설치 및 실행 확인 완료.
그러나 파이썬을 활용해 엘라스틱서치를 사용하는 예제들을 따라해 보려했더니
TlsError: TLS error caused by: TlsError(TLS error caused by: SSLError([SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1131)))
certificate에러가 발생했다. 아까 터미널에서 에러를 .crt 파일과 user elastic 및 비밀번호 입력으로 해결했기에, 역시 이를 입력하면 해결이 될 것이라고 생각했다.
from elasticsearch import Elasticsearch, helpers
client = Elasticsearch('https://localhost:9200')
이렇게 되어 있던 코드를
client = Elasticsearch('https://localhost:9200', request_timeout=60, ca_certs = './http_ca.crt', basic_auth=('elastic', 내비번))
위와 같이 변경해주고, 클라이언트 정보를 확인해보면, 제대로 엘라스틱서치 클라이언트 정보를 확인할 수 있다.
client.info()
참고 : https://boiler.buzzni.com/2020/08/11/Elasticsearch-Python-Client를-활용한-'검색'-입문.html
https://jinhokwon.github.io/devops/elasticsearch/elasticsearch-docker/
https://needjarvis.tistory.com/713
https://tommypagy.tistory.com/343
https://velog.io/@junsugi/Elasticsearch-curl-52-Empty-reply-from-server-에러
'OS > Windows' 카테고리의 다른 글
Windows 10 WSL linux에서 도커 docker 사용하기 (0) | 2022.07.19 |
---|---|
Windows10에서 WSL로 리눅스 쉽게 사용하기 (0) | 2022.07.19 |
Window 10 pro WSL Linux ubuntu 18.0.4 (0) | 2022.06.23 |