Apache Solrとは何ですか? Apache Solrは、Javaで記述されたオープンソースのエンタープライズクラスの検索プラットフォームであり、データベース、ファイル、ウェブサイトにインデックスを付けるカスタム検索エンジンを作成できます。 ApacheLuceneのバックエンドサポートがあります。たとえば、複数のWebサイトで検索するために使用され、検索されたコンテンツの推奨事項を表示できます。 Solrは、XML(Extensible Markup Language)ベースのクエリおよび結果言語を使用します。 Python、Ruby、JSON(Javascript Object Notation)で利用できるAPI(アプリケーションプログラムインターフェイス)があります。
Solrが提供するその他の機能は次のとおりです。
- 全文検索。
- スニペットの生成と強調表示。
- カスタムドキュメントの順序付け/ランク付け。
- スペルの提案。
このチュートリアルでは、Ubuntu16.04LTSに最新のSolrバージョンをインストールする方法を説明します。この手順は、Ubuntu以降のバージョンでも機能する可能性があります。
root以外のsudoユーザーを使用してUbuntuサーバーにログインします。このユーザーを介して、すべてのステップを実行し、後でSolrを使用する必要があります。
システムを更新するには、次のコマンドを実行して、システムを最新のパッチと更新で更新します。
sudo apt-get update && apt-get upgrade -y
Javaランタイム環境のセットアップ
SolrはJavaアプリケーションであるため、Solrをセットアップするには、最初にJavaランタイム環境をインストールする必要があります。
最新のJava8をインストールするには、Pythonソフトウェアのプロパティをインストールする必要があります。次のコマンドを実行してソフトウェアをインストールします。
[email protected]:~# 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を押して続行します。
コマンドを実行した後、次のコマンドを実行して、システムにwebupd8teamJavaPPAリポジトリを追加します。
sudo add-apt-repository ppa:webupd8team/java
必要に応じて[ENTER]を押してください。これで、aptを使用して最新バージョンのJava8を簡単にインストールできます。
まず、パッケージリストを更新して、新しいPPAから利用可能なパッケージを取得します。
sudo apt-get update
次に、次のコマンドを使用してOracleJava8の最新バージョンをインストールします。
sudo apt-get install oracle-java8-installer
[email protected]:~# 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を使用する場合は、[OK]ボタンをクリックしてhttp://java.com/licenseで利用可能なライセンスに同意する必要があります。
このパッケージは一種のメタインストーラーをインストールし、それがOracleから直接バイナリーをダウンロードします。インストールプロセスの後、次のコマンドを実行して、インストールされているJavaのバージョンを確認します
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)
これでJava8がインストールされ、次のステップに進みます。
Solrアプリケーションのインストール
Solrはさまざまな方法でUbuntuにインストールできます。この記事では、ソースから最新のパッケージをインストールする方法を紹介します。
まず、Solrディストリビューションをダウンロードします。まず、利用可能なパッケージの最新バージョンをWebページから見つけ、リンクをコピーして、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
[email protected]:/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
出力は次のようになります:
[email protected]:/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
これで始まる出力が表示されるはずです:
[email protected]:/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"
[email protected]:/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"}
最初のコレクションの新しいコアディレクトリが作成されました。デフォルトのスキーマファイルを表示するには、次のURLにアクセスしてください。
/opt/solr/server/solr/configsets/data_driven_schema_configs/conf
SolrWebインターフェースを使用する
Apache Solrは、デフォルトのポートである8983でアクセスできるようになりました。管理UIには、http:// your_server_ip:8983/solrからアクセスできるはずです。ポートは、ファイアウォールによってリンクの実行を許可されている必要があります。
例:
http://192.168.1.100:8983/solr/
以前に作成した最初のコレクションの詳細を表示するには、左側のメニューで[gettingstarted]コレクションを選択します。
「はじめに」コレクションを選択したら、[ドキュメント]を選択します 左側のメニューにあります。そこで、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/シェルログイン
ユーザー名:管理者
パスワード:howtoforge
このユーザーにはsudo権限があります。
仮想マシンを保護するために、上記のすべてのパスワードを変更してください。
UbuntuにSolrWebインターフェースを正常にインストールした後、SolrAPIとWebインターフェースを使用してデータを挿入またはクエリできるようになりました。