웹사이트 검색

Ubuntu 14.04에 Solr을 설치하는 방법


소개

Solr는 Apache Lucene을 기반으로 하는 검색 엔진 플랫폼입니다. Java로 작성되었으며 Lucene 라이브러리를 사용하여 인덱싱을 구현합니다. 다양한 REST API(예: XML 및 JSON)를 사용하여 액세스할 수 있습니다. 다음은 웹사이트의 기능 목록입니다.

  • 고급 전체 텍스트 검색 기능
  • 대량의 웹 트래픽에 최적화됨
  • 표준 기반 개방형 인터페이스 - XML, JSON 및 HTTP
  • 종합적인 HTML 관리 인터페이스
  • 모니터링을 위해 JMX를 통해 노출되는 서버 통계
  • 선형적으로 확장 가능한 자동 인덱스 복제, 자동 장애 조치 및 복구
  • 거의 실시간 인덱싱
  • XML 구성으로 유연하고 적응 가능
  • 확장 가능한 플러그인 아키텍처

이 기사에서는 두 가지 방법을 사용하여 Ubuntu에 Solr을 설치하는 방법을 보여줍니다. 첫 번째는 간단한 방법이고 두 번째는 고급 방법입니다. 두 번째 방법은 모든 Ubuntu 버전에 최신 버전의 Solr을 설치하기 때문에 두 번째 방법을 권장합니다. 작성 시점의 최신 버전인 14.04에서도 마찬가지입니다.

apt-get을 사용하여 Solr 설치(쉬운 방법)

Solr를 쉬운 방법으로 설치하려면 기사의 이 섹션을 사용해야 합니다. Solr은 단독으로 작동하지 않습니다. Tomcat 또는 Jetty와 같은 Java 서블릿 컨테이너가 필요합니다. 이 기사에서는 Jetty를 사용하지만 Tomcat도 마찬가지로 쉽습니다. 먼저 Java JDK를 설치해야 합니다. 사용자 정의 버전을 설치하려면 이 문서를 참조하십시오. 간단한 설치를 원하시면 다음 명령을 실행하십시오.

sudo apt-get -y install openjdk-7-jdk
mkdir /usr/java
ln -s /usr/lib/jvm/java-7-openjdk-amd64 /usr/java/default

우분투는 기본적으로 3개의 Solr 패키지를 제공합니다: 실제 Solr 코드를 포함하는 패키지인 solr-common; solr-tomcat, Tomcat과 통합된 Solr; 및 solr-jettysolr-tomcat과 같지만 Jetty 웹 서버가 있습니다. 이 문서에서는 solr-tomcat을 설치하므로 다음 명령을 실행합니다.

sudo apt-get -y install solr-tomcat

이제 Solr 인스턴스를 http://YOUR_IP:8080/solr에서 사용할 수 있습니다. Solr를 구성하려면 수동 설치에 대한 다음 섹션을 건너뛰십시오.

수동으로 Solr 설치

Solr를 수동으로 설치하려면 시간이 조금 더 필요합니다. 먼저 Java JDK를 설치해야 합니다. 사용자 정의 버전을 설치하려면 이 문서를 참조하십시오. 이 섹션에서는 Tomcat 대신 Jetty를 사용합니다. 간단한 설치를 원하시면 다음 명령을 실행하십시오.

sudo apt-get -y install openjdk-7-jdk
mkdir /usr/java
ln -s /usr/lib/jvm/java-7-openjdk-amd64 /usr/java/default

이제 Solr의 실제 설치를 시작할 수 있습니다. 먼저 모든 파일을 다운로드하고 압축을 풉니다.

cd /opt
wget http://archive.apache.org/dist/lucene/solr/4.7.2/solr-4.7.2.tgz
tar -xvf solr-4.7.2.tgz
cp -R solr-4.7.2/example /opt/solr
cd /opt/solr
java -jar start.jar

http://YOUR_IP:8983/solr를 방문하여 작동하는지 확인하세요. 작동하면 SSH 세션으로 돌아가서 Ctrl+C로 창을 닫습니다. 그런 다음 /etc/default/jetty 파일(nano /etc/default/jetty)을 열고 다음을 붙여넣습니다.

NO_START=0 # Start on boot
JAVA_OPTIONS="-Dsolr.solr.home=/opt/solr/solr $JAVA_OPTIONS"
JAVA_HOME=/usr/java/default
JETTY_HOME=/opt/solr
JETTY_USER=solr
JETTY_LOGS=/opt/solr/logs

저장하고 파일 /opt/solr/etc/jetty-logging.xml(nano /opt/solr/etc/jetty-logging.xml)을 열고 다음을 붙여넣습니다. 그것에:

<예비>

  &lt;New id="ServerLog" class="java.io.PrintStream"&gt;
    &lt;Arg&gt;
      &lt;New class="org.mortbay.util.RolloverFileOutputStream"&gt;
        &lt;Arg&gt;&lt;SystemProperty name="jetty.logs" default="."/&gt;/yyyy_mm_dd.stderrout.log&lt;/Arg&gt;
        &lt;Arg type="boolean"&gt;false&lt;/Arg&gt;
        &lt;Arg type="int"&gt;90&lt;/Arg&gt;
        &lt;Arg&gt;&lt;Call class="java.util.TimeZone" name="getTimeZone"&gt;&lt;Arg&gt;GMT&lt;/Arg&gt;&lt;/Call&gt;&lt;/Arg&gt;
        &lt;Get id="ServerLogName" name="datedFilename"/&gt;
      &lt;/New&gt;
    &lt;/Arg&gt;
  &lt;/New&gt;

  &lt;Call class="org.mortbay.log.Log" name="info"&gt;&lt;Arg&gt;Redirecting stderr/stdout to &lt;Ref id="ServerLogName"/&gt;&lt;/Arg&gt;&lt;/Call&gt;
  &lt;Call class="java.lang.System" name="setErr"&gt;&lt;Arg&gt;&lt;Ref id="ServerLog"/&gt;&lt;/Arg&gt;&lt;/Call&gt;
  &lt;Call class="java.lang.System" name="setOut"&gt;&lt;Arg&gt;&lt;Ref id="ServerLog"/&gt;&lt;/Arg&gt;&lt;/Call&gt;&lt;/Configure&gt;

그런 다음 Solr 사용자를 만들고 권한을 부여합니다.

sudo useradd -d /opt/solr -s /sbin/false solr
sudo chown solr:solr -R /opt/solr

그런 다음 시작 파일을 다운로드하고 아직 완료되지 않은 경우 자동으로 시작되도록 설정합니다.

sudo wget -O /etc/init.d/jetty http://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk/jetty-distribution/src/main/resources/bin/jetty.sh
sudo chmod a+x /etc/init.d/jetty
sudo update-rc.d jetty defaults

마지막으로 Jetty/Solr를 시작합니다.

sudo /etc/init.d/jetty start

이제 이전과 마찬가지로 http://YOUR_IP:8983/solr에서 설치에 액세스할 수 있습니다.

Solr에 대한 schema.xml 구성

먼저 /opt/solr/solr/collection1의 이름을 apples와 같이 이해할 수 있는 이름으로 변경합니다(원하는 이름 사용). (apt-get을 사용하여 설치한 경우 건너뛸 수 있습니다. 이 경우 cd /usr/share/solr 명령을 대신 실행할 수 있습니다.)

cd /opt/solr/solr
mv collection1 apples
cd apples

또한 Solr을 수동으로 설치한 경우 core.properties(nano core.properties) 파일을 열고 이름을 같은 이름으로 변경합니다.

그런 다음 data 디렉토리를 제거하고 schema.xml을 변경합니다.

rm -R data
nano conf/schema.xml

자신의 schema.xml을 여기에 붙여넣으십시오. Solr Repository에는 매우 발전된 schema.xml이 있습니다. 아마 인터넷에서 더 많은 것을 찾을 수 있을 것입니다. 하지만 그것에 대해 깊이 들어가지는 않겠습니다. Jetty/Tomcat을 다시 시작합니다.

간단한 설치용.

sudo service tomcat6 restart

고급 설치용.

sudo /etc/init.d/jetty restart

이제 Solr 인스턴스를 방문하면 어딘가에 컬렉션이 있는 대시보드가 표시됩니다.

결론

이제 Solr를 성공적으로 설치했으며 자신의 사이트에서 사용할 수 있습니다! schema.xml을 만드는 방법을 모르는 경우 만드는 방법에 대한 자습서를 찾으십시오. 그런 다음 Solr과 연결되는 프로그래밍 언어용 라이브러리를 찾으십시오.

제출자: Koen Vlaswinkel