Project2 - ElasticSearch

2021. 8. 15. 11:56솔트룩스/프로젝트

현재 진행하는 프로젝트에서 빅데이터 플랫폼은 ElasticSearch에 데이터를 적재 할 것이고, 거기서 가져와서 쓰면 된다고 전해 들었다. 그래서 일단 데이터 상태 확인을 위해 빅데이터 플랫폼팀이 올려둔 raw 데이터라던지, 전처리한 데이터 확인을 위해 ElasticSearch에 접근하는 방법을 알아볼 필요가 있었다.

 

ElasticSearch이란, 현재 가장 대중적인 엔터프라이즈 검색 엔진이다.

HTTP 웹 인터페이스와 스키마에서 자유로운 JSON 문서와 함께 분산 멀티테넌트 지원 전문 검색 엔진을 제공한다.

이는 자바로 개발되어 있으며, 공식 클라이언트들은 자바/파이썬/PHP/그루비/C#등 수많은 언어로 이용 가능하다.

 

Multitenat
소프트웨어 아키텍처의 하나를 가리키며, 하나의 소프트웨어 인스턴스가 한대의 서버 위에서 동작하면서 여러개의 tenant를 서비스한다.
또한 여기서 tenant란 소프트웨어 인스턴스에 대해 공통이 되는 특정 접근 권한을 공유하는 사용자들의 그룹을 가리킨다.

 

 

Elasticsearch를 이용한 데이터 접근 코드
  from elasticsearch import Elasticsearch
 def search(data = None):
  
  url = "URL 주소"
  port = "Port 번호"
  index = "인덱스 명"
  
  #엘라스틱서치에 접근
  es = Elasticsearch(f'{url}:{port}')
  
  if data in None:
  	data = {"match_all" : {}}
  else:
  	data = {"match" : data}
  
  #index 에 해당하는 데이터는 거의 9000개에 달하므로 9000으로 사이즈 지정
  body = {"size" : 9000, "query" : data}
  res = es.search(index = index, body = body)
  
  return res
def content_list():
  sr = search()
  content_list = []
  
  for i in range(9000):
  	#index 아래 딕셔너리 형식으로 데이터들이 저장되어있다.
  	#여기서 기사 내용만 얻고자 text로 접근하였다.
  	content_list.append(sr['hits']['hits'][i]['_source']['text'])
  
  return content_list

'솔트룩스 > 프로젝트' 카테고리의 다른 글

Project4 - Flask  (0) 2022.05.23
Project3 - SubProcess & Jpype  (0) 2021.08.15
Project1_BeautifulSoup & Selenium VER2  (0) 2021.05.18
Project1_BeautifulSoup & Selenium VER1  (0) 2021.05.12