본문 바로가기

Archived(IT)/배경지식_챗봇

Apache Solr(아파치 솔라)

Apache Solr(아파치 솔라)

오픈소스 정보검색 라이브러리인 루씬의 엔터프라이즈 버전이다. 엔터프라이즈 검색  서버인만큼 다양한 기능을 지원한다. 기본적인 텍스트 검색, 다면적 검색, 실시간 인덱싱, 클러스터링, 데이터베이스 통합, 다양한 문서처리 및 검색, 솔라 분산 인덱싱 등의 기능을 지원하고 있다.

 

Apache Solr 아키텍처 및 기술용어

  • 클러스터(Cluster) : 하나 이상의 노드로 이루어진 가장 큰 시스템 단위(독립적인 형태로 유지되며, 한 서버를 여러대의 클러스터가 구성할 수 있으며, 여러 대의 서버가 한 클러스터를 구성할 수도 있다)
  • 스키마(Schema) : 색인할 문서의 필드, 필드 타입 정의
  • 인덱스 복제(Index Replication): 마스터 인덱스의 전체 복사본을 하나 이상의 슬레이브 서버로 배포 및 업데이트하는 것(대규모 볼륨에 대한 분산 처리를 위해)
  • 샤드(Shard) : 데이터를 분산하여 저장하는 단위(인덱스를 조각내어 처리)

 

Apache Solr 특징

1) 루씬 기반

루씬 검색 라이브러리 기반의  파일을 인덱스하는 검색엔진

2) 색인 / 검색

색인은 HTTP 프로토콜 상에서 XML을 통해서 색인, 검색은 HTTP GET으로 쿼리를 보낼 수 있으며 XML의 형태로 값을 얻음

3) 분산 처리

솔라는 인덱스 복제(Index Replication)라는 기술을 활용한다. 마스터 인덱스의 전체 복사본을 하나 이상의 슬레이브 서버로 배포 및 업데이트한다. 모든 쿼리는 슬레이브에 의해 처리되는데 이러한 복제 및 분산처리를 통해 Solr는 대규모 검색 볼륨에 대한 쿼리에 적절한 대응력을 제공할 수 있다.

4) 접근성

솔라 검색서버 URL을 사용하기에 인터넷을 통해 파일을 질의, 인덱스하는 어느 곳에서나 접근 가능

 

Apache Nutch + Solr Stack

 

Apache Nutch(아파치 너치)는 오픈소스 웹 검색 SW로 웹 크롤러의 기능을 제공한다. Nutch는 웹 데이터들에 대해 효과적으로 Fetcher들을 통해 크롤링을 수행한다. 이렇게 축적된 자료들에 대해 인덱스를 구성하면 Apache Solr(Lucene)는 인덱스를 통해서 분산 처리를 통해 검색을 수행한다.

 

 

출처 : Solr 공식사이트, 우주의 중심(블로그)