웹사이트 검색

Ubuntu 16.04에서 Solr 6을 설치하고 구성하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 14.04 LTS(Trusty Tahr)

이 페이지에서

  1. 시스템 업데이트
  2. Java Runtime Environment 설정
  3. Solr 애플리케이션 설치\n
  4. Solr 검색 모음 만들기:
  5. Solr 웹 인터페이스 사용
  6. 이 튜토리얼의 가상 머신 이미지 다운로드
  7. 결론

아파치 솔러란? Apache Solr는 데이터베이스, 파일, 웹사이트의 색인을 생성하는 맞춤 검색 엔진을 만들 수 있는 자바로 작성된 오픈소스 엔터프라이즈급 검색 플랫폼입니다. Apache Lucene에 대한 백엔드 지원이 있습니다. 예를 들어 여러 웹사이트에서 검색하는 데 사용되며 검색된 콘텐츠에 대한 권장 사항을 표시할 수 있습니다. Solr는 XML(Extensible Markup Language) 기반 쿼리 및 결과 언어를 사용합니다. Python, Ruby 및 JSON(Javascript Object Notation)에 사용할 수 있는 API(응용 프로그램 인터페이스)가 있습니다.

Solr가 제공하는 다른 기능은 다음과 같습니다.

  • 전체 텍스트 검색.
  • 스니펫 생성 및 강조표시.\n
  • 맞춤형 문서 순서/순위.\n
  • 맞춤법 제안.

이 튜토리얼은 Ubuntu 16.04 LTS에 최신 Solr 버전을 설치하는 방법을 보여줍니다. 이 단계는 최신 Ubuntu 버전에서도 작동할 가능성이 높습니다.

시스템 업데이트

루트가 아닌 sudo 사용자를 사용하여 Ubuntu 서버에 로그인하십시오. 이 사용자를 통해 모든 단계를 수행하고 나중에 Solr를 사용해야 합니다.

시스템을 업데이트하려면 다음 명령을 실행하여 최신 패치 및 업데이트로 시스템을 업데이트하십시오.

sudo apt-get update && apt-get upgrade -y

자바 런타임 환경 설정

Solr은 Java 응용 프로그램이므로 Solr을 설정하려면 먼저 Java 런타임 환경을 설치해야 합니다.

최신 Java 8을 설치하려면 Python 소프트웨어 속성을 설치해야 합니다. 다음 명령을 실행하여 소프트웨어를 설치합니다.

:~# sudo apt-get install python-software-properties
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-apt
python-minimal python-pycurl python2.7 python2.7-minimal
Suggested packages:
python-doc python-tk python-apt-dbg python-apt-doc libcurl4-gnutls-dev
python-pycurl-dbg python-pycurl-doc python2.7-doc binutils binfmt-support
The following NEW packages will be installed:
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib python python-apt
python-minimal python-pycurl python-software-properties python2.7
python2.7-minimal
0 upgraded, 10 newly installed, 0 to remove and 3 not upgraded.
Need to get 4,070 kB of archives.
After this operation, 17.3 MB of additional disk space will be used.
Do you want to continue? [Y/n]

계속하려면 Y를 누르십시오.

명령을 실행한 후 다음을 실행하여 시스템에 webupd8team Java PPA 저장소를 추가합니다.

sudo add-apt-repository ppa:webupd8team/java

요청 시 [ENTER]를 누르십시오. 이제 apt로 최신 버전의 Java 8을 쉽게 설치할 수 있습니다.

먼저 패키지 목록을 업데이트하여 새 PPA에서 사용 가능한 패키지를 가져옵니다.

sudo apt-get update

그런 다음 다음 명령을 사용하여 최신 버전의 Oracle Java 8을 설치합니다.

sudo apt-get install oracle-java8-installer
:~# sudo apt-get install oracle-java8-installer
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 x11-common xfonts-encodings xfonts-utils
Suggested packages:
binutils-doc binfmt-support visualvm ttf-baekmuk | ttf-unfonts | ttf-unfonts-core ttf-kochi-gothic | ttf-sazanami-gothic ttf-kochi-mincho | ttf-sazanami-mincho ttf-arphic-uming firefox
| firefox-2 | iceweasel | mozilla-firefox | iceape-browser | mozilla-browser | epiphany-gecko | epiphany-webkit | epiphany-browser | galeon | midbrowser | moblin-web-browser | xulrunner
| xulrunner-1.9 | konqueror | chromium-browser | midori | google-chrome
The following NEW packages will be installed:
binutils gsfonts gsfonts-x11 java-common libfontenc1 libxfont1 oracle-java8-installer x11-common xfonts-encodings xfonts-utils
0 upgraded, 10 newly installed, 0 to remove and 3 not upgraded.
Need to get 6,498 kB of archives.
After this operation, 20.5 MB of additional disk space will be used.
Do you want to continue? [Y/n]

계속하려면 Y를 누르십시오.

Oracle JDK를 사용하려면 http://java.com/license에서 제공되는 라이선스에 동의하고 확인 버튼을 클릭해야 합니다.

이 패키지는 일종의 메타 설치 프로그램을 설치한 다음 Oracle에서 직접 바이너리를 다운로드합니다. 설치 프로세스 후 다음 명령어를 실행하여 설치된 자바 버전을 확인합니다.

java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

이제 Java 8을 설치했으며 다음 단계로 넘어갑니다.

Solr 애플리케이션 설치

Solr은 여러 가지 방법으로 Ubuntu에 설치할 수 있습니다. 이 기사에서는 소스에서 최신 패키지를 설치하는 방법을 보여 드리겠습니다.

Solr 배포판을 다운로드하는 것으로 시작하겠습니다. 먼저 웹페이지에서 사용 가능한 패키지의 최신 버전을 찾아 링크를 복사하고 wget 명령을 사용하여 다운로드합니다.

이 설정에서는 http://www.us.apache.org/dist/lucene/solr/6.0.1/을 사용합니다.

cd /tmp
wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
:/tmp# wget http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
--2016-06-03 11:31:54-- http://www.us.apache.org/dist/lucene/solr/6.0.1/solr-6.0.1.tgz
Resolving www.us.apache.org (www.us.apache.org)... 140.211.11.105
Connecting to www.us.apache.org (www.us.apache.org)|140.211.11.105|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 137924507 (132M) [application/x-gzip]
Saving to: ‘solr-6.0.1.tgz’

이제 아래 명령어를 실행하여 서비스 설치 파일을 추출합니다.

tar xzf solr-6.0.1.tgz solr-6.0.1/bin/install_solr_service.sh --strip-components=2

그리고 다음 스크립트를 사용하여 Solr를 서비스로 설치합니다.

sudo ./install_solr_service.sh solr-6.0.1.tgz

출력은 다음과 유사합니다.

 :/tmp# sudo ./install_solr_service.sh solr-6.0.1.tgz
id: ‘solr’: no such user
Creating new user: solr
Adding system user `solr' (UID 111) ...
Adding new group `solr' (GID 117) ...
Adding new user `solr' (UID 111) with group `solr' ...
Creating home directory `/var/solr' ...

Extracting solr-6.0.1.tgz to /opt


Installing symlink /opt/solr -> /opt/solr-6.0.1 ...


Installing /etc/init.d/solr script ...


Installing /etc/default/solr.in.sh ...

? solr.service - LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-06-03 11:37:05 CEST; 5s ago
Docs: man:systemd-sysv-generator(8)
Process: 20929 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)

Jun 03 11:36:43 server1 systemd[1]: Starting LSB: Controls Apache Solr as a Service...
Jun 03 11:36:44 server1 su[20934]: Successful su for solr by root
Jun 03 11:36:44 server1 su[20934]: + ??? root:solr
Jun 03 11:36:44 server1 su[20934]: pam_unix(su:session): session opened for user solr by (uid=0)
Jun 03 11:37:05 server1 solr[20929]: [313B blob data]
Jun 03 11:37:05 server1 solr[20929]: Started Solr server on port 8983 (pid=20989). Happy searching!
Jun 03 11:37:05 server1 solr[20929]: [14B blob data]
Jun 03 11:37:05 server1 systemd[1]: Started LSB: Controls Apache Solr as a Service.
Service solr installed.

이 명령을 사용하여 서비스 상태를 확인하십시오.

service solr status

다음으로 시작하는 출력이 표시되어야 합니다.

:/tmp# service solr status
? solr.service - LSB: Controls Apache Solr as a Service
Loaded: loaded (/etc/init.d/solr; bad; vendor preset: enabled)
Active: active (exited) since Fri 2016-06-03 11:37:05 CEST; 39s ago
Docs: man:systemd-sysv-generator(8)
Process: 20929 ExecStart=/etc/init.d/solr start (code=exited, status=0/SUCCESS)

Jun 03 11:36:43 server1 systemd[1]: Starting LSB: Controls Apache Solr as a Service...
Jun 03 11:36:44 server1 su[20934]: Successful su for solr by root
Jun 03 11:36:44 server1 su[20934]: + ??? root:solr
Jun 03 11:36:44 server1 su[20934]: pam_unix(su:session): session opened for user solr by (uid=0)
Jun 03 11:37:05 server1 solr[20929]: [313B blob data]
Jun 03 11:37:05 server1 solr[20929]: Started Solr server on port 8983 (pid=20989). Happy searching!
Jun 03 11:37:05 server1 solr[20929]: [14B blob data]
Jun 03 11:37:05 server1 systemd[1]: Started LSB: Controls Apache Solr as a Service.

Solr 검색 모음 만들기:

Solr를 사용하여 여러 컬렉션을 만들 수 있습니다. 주어진 명령어를 실행하고 컬렉션의 이름(여기서는 시작됨)을 언급하고 구성을 지정합니다.

sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"
:/tmp# sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"

Copying configuration to new core instance directory:
/var/solr/data/gettingstarted

Creating new core 'gettingstarted' using command:
http://localhost:8983/solr/admin/cores?action=CREATE&name=gettingstarted&instanceDir=gettingstarted

{
"responseHeader":{
"status":0,
"QTime":4427},
"core":"gettingstarted"}

첫 번째 컬렉션의 새 핵심 디렉터리가 생성되었습니다. 기본 스키마 파일을 보려면 다음으로 이동하십시오.

/opt/solr/server/solr/configsets/data_driven_schema_configs/conf

Solr 웹 인터페이스 사용

이제 기본 포트인 8983에서 Apache Solr에 액세스할 수 있습니다. 관리 UI는 http://your_server_ip:8983/solr에서 액세스할 수 있어야 합니다. 링크를 실행하려면 방화벽에서 포트를 허용해야 합니다.

예를 들어:

http://192.168.1.100:8983/solr/

이전에 만든 첫 번째 컬렉션의 세부정보를 보려면 왼쪽 메뉴에서 "시작하기" 컬렉션을 선택하세요.

"시작하기" 컬렉션을 선택한 후 왼쪽 메뉴에서 문서를 선택합니다. 여기에서 Solr에서 검색할 수 있는 JSON 형식의 실제 데이터를 입력할 수 있습니다. 더 많은 데이터를 추가하려면 다음 예제 JSON을 복사하여 문서 필드에 붙여넣으세요.

{
"id": 1,
"book_title": "My First Book",
"published": 1985,
"description": "All about Linux"
}

데이터를 추가한 후 문서 제출 버튼을 클릭합니다.

Status: success
Response:

{
"responseHeader": {
"status": 0,
"QTime": 189
}
}

이제 왼쪽에서 쿼리를 클릭한 다음 쿼리 실행을 클릭합니다.

다음과 같이 표시됩니다.

{
  "responseHeader":{
    "status":0,
    "QTime":24,
    "params":{
      "q":"*:*",
      "indent":"on",
      "wt":"json",
      "_":"1464947017056"}},
  "response":{"numFound":1,"start":0,"docs":[
      {
        "id":"1",
        "book_title":["My First Book"],
        "published":[1985],
        "description":["All about Linux"],
        "_version_":1536108205792296960}]
  }}

이 튜토리얼의 가상 머신 이미지 다운로드

이 튜토리얼은 Howtoforge 구독자를 위해 ovf/ova 형식의 가상 머신 이미지를 사용할 준비가 된 상태로 제공됩니다. VM 형식은 VMWare 및 Virtualbox와 호환됩니다. 가상 머신 이미지는 다음 로그인 세부 정보를 사용합니다.

SSH/쉘 로그인

사용자 이름: administrator
비밀번호: howtoforge

이 사용자는 sudo 권한이 있습니다.

위의 모든 암호를 변경하여 가상 머신을 보호하십시오.

결론

Ubuntu에 Solr 웹 인터페이스를 성공적으로 설치한 후 이제 Solr API 및 웹 인터페이스를 사용하여 데이터를 삽입하거나 데이터를 쿼리할 수 있습니다.