Profile

창조적이고 생산적이고 싶은 개발자 블로그

검바위길

Solr로 검색엔진 만들기 - 설치 편

Solr 이란?

Solr는 Apache Lucene을 기반으로 만들어진 오픈소스 검색엔진이다.

검색은 크게 데이터 수집, 데이터 색인, 데이터 검색의 프로세스를 가지는데 Lucene은 색인과 검색 API를 제공해주는 라이브러리다.

Solr는 색인과 검색은 Lucene 엔진을 사용하면서 HTTP 처리와 응답을 하는 웹 기반 검색엔진이라고 할 수 있다.

자세한 내용은 https://en.wikipedia.org/wiki/Apache_Solr 참고


Solr 설치하기

Mac OS X 기준으로 설명


우선 설치하기전에 brew부터 업데이트 해준다.

필수 항목은 아니지만 되도록 업데이트해주는게 좋으니까

λ leeda [~] → brew update
Updated 2 taps (homebrew/core and homebrew/cask).


조금 기다리면 업데이트 과정이 끝난다.

이제 solr 서버를 설치해준다

λ leeda [~] → brew install solr
==> Downloading https://www.apache.org/dyn/closer.cgi?path=lucene/solr/7.7.1/sol
==> Downloading from http://apache.mirror.cdnetworks.com/lucene/solr/7.7.1/solr-
######################################################################## 100.0%
==> Caveats
To have launchd start solr now and restart at login:
  brew services start solr
Or, if you don't want/need a background service you can just run:
  solr start
==> Summary
🍺  /usr/local/Cellar/solr/7.7.1: 1,575 files, 185.2MB, built in 16 seconds

Solr 시작하기

위의 설치 과정에서도 나오지만 간단하게 brew를 이용해 서비스를 시작해주면 된다.
path문제도 있고하니 터미널을 종료하고 다시 시작한 후에 명령어를 입력해준다.
λ leeda [~] → brew services start solr
==> Tapping homebrew/services
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
remote: Enumerating objects: 17, done.
remote: Counting objects: 100% (17/17), done.
remote: Compressing objects: 100% (14/14), done.
remote: Total 17 (delta 0), reused 14 (delta 0), pack-reused 0
Unpacking objects: 100% (17/17), done.
Tapped 1 command (50 files, 62.4KB).
==> Successfully started `solr` (label: homebrew.mxcl.solr)

brew 를 이용해 서비스로 등록된 solr을 실행해도 되지만 solr start 커맨드로 시작해도 된다.

기본적으로 백그라운드로 실행되기 때문에 foreground로 실행하기위해서는 -f(force가 아니다 여기서는) 옵션을 붙이고 실행한다.

Solr 접속하기

포트 지정을 하지 않을 경우 8983으로 시작되지만 solr 인스턴스가 이미 설치 되어 있거나 다른 프로세스가 포트를 사용 중이라면 다른 포트로 동작할 수 있다.
status 커맨드로 실행한 포트를 확인한다.


λ leeda [~] → solr status

Found 1 Solr nodes:

Solr process 10204 running on port 8983
INFO  - 2019-03-12 22:52:20.876; org.apache.solr.util.configuration.SSLCredentialProviderFactory; Processing SSL Credential Provider chain: env;sysprop
{
  "solr_home":"/usr/local/opt/solr/server/solr",
  "version":"7.7.1 5bf96d32f88eb8a2f5e775339885cd6ba84a3b58 - ishan - 2019-02-23 02:39:07",
  "startTime":"2019-03-12T13:52:16.670Z",
  "uptime":"0 days, 0 hours, 0 minutes, 4 seconds",
  "memory":"64.1 MB (%13.1) of 490.7 MB"}

역시나 8983으로 떠 있다.

브라우서에서 localhost:8983으로 접속한다.