Solrとのコラボレーションで作成

序章

Solrは、ApacheLuceneに基づく検索エンジンプラットフォームです。 これはJavaで記述されており、Luceneライブラリを使用してインデックスを実装します。 XMLやJSONなどのさまざまなRESTAPIを使用してアクセスできます。 これは彼らのウェブサイトからの機能リストです:

  • 高度な全文検索機能
  • 大量のWebトラフィック用に最適化
  • 標準ベースのオープンインターフェイス-XML、JSON、HTTP
  • 包括的なHTML管理インターフェイス
  • 監視のためにJMXを介して公開されるサーバー統計
  • 線形にスケーラブルな自動インデックスレプリケーション、自動フェイルオーバーおよびリカバリ
  • ほぼリアルタイムのインデックス作成
  • XML構成で柔軟かつ適応可能
  • 拡張可能なプラグインアーキテクチャ

この記事では、二項分布を使用してSolrをインストールします。

前提条件

このチュートリアルに従うには、次のものが必要です。

ステップ1—Javaのインストール

SolrにはJavaが必要なので、このステップではJavaをインストールします。

完全なJavaインストールプロセスはこの記事で完全に説明されていますが、少し異なるプロセスを使用します。

まず、apt-getを使用してpython-software-propertiesをインストールします。

  1. sudo apt-get install python-software-properties

default-jdkまたはdefault-jreパッケージを使用する代わりに、最新バージョンのJava8をインストールします。 これを行うには、非公式のJavaインストーラリポジトリを追加します。

  1. sudo add-apt-repository ppa:webupd8team/java

リポジトリをインデックスに追加することを受け入れるには、ENTERを押す必要があります。

次に、ソースリストを更新します。

  1. sudo apt-get update

最後に、apt-getを使用してJava8をインストールします。 Java SEPlatformProductsおよびJavaFXのOracleBinaryCodeライセンス契約に同意する必要があります。

  1. sudo apt-get install oracle-java8-installer

ステップ2—Solrのインストール

このセクションでは、Solr5.2.1をインストールします。 まず、Solrディストリビューションをダウンロードします。

まず、このページで適切なミラーを見つけます。 次に、ミラーからsolr-5.2.1.tgzのリンクをコピーします。 たとえば、http://apache.mirror1.spango.com/lucene/solr/5.2.1/を使用します。

次に、ホームディレクトリにファイルをダウンロードします。

  1. cd ~
  2. wget http://apache.mirror1.spango.com/lucene/solr/5.2.1/solr-5.2.1.tgz

次に、サービスインストールファイルを抽出します。

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

そして、スクリプトを使用してSolrをサービスとしてインストールします。

  1. sudo bash ./install_solr_service.sh solr-5.2.1.tgz

最後に、サーバーが実行されているかどうかを確認します。

  1. sudo service solr status

これで始まる出力が表示されるはずです。

Solrステータス出力
Found 1 Solr nodes: 

Solr process 2750 running on port 8983

. . .

ステップ3—コレクションの作成

このセクションでは、単純なSolrコレクションを作成します。

Solrは複数のコレクションを持つことができますが、この例では1つだけを使用します。 新しいコレクションを作成するには、次のコマンドを使用します。 この場合、パーミッションエラーを回避するためにSolrユーザーとして実行します。

  1. sudo su - solr -c "/opt/solr/bin/solr create -c gettingstarted -n data_driven_schema_configs"

このコマンドでは、gettingstartedはコレクションの名前であり、-nは構成セットを指定します。 デフォルトでSolrによって提供される3つの構成セットがあります。 この場合、スキーマレスのものを使用しました。つまり、任意のフィールドに任意の名前を指定でき、タイプが推測されます。

これでコレクションが追加され、データの追加を開始できます。 デフォルトのスキーマには、idという1つの必須フィールドのみがあります。 他のデフォルトフィールドはなく、動的フィールドのみがあります。 すべてが明確に説明されているスキーマを確認したい場合は、ファイル/opt/solr/server/solr/gettingstarted/conf/schema.xmlを参照してください。

ステップ4—ドキュメントの追加とクエリ

このセクションでは、Solr Webインターフェースを調べて、コレクションにいくつかのドキュメントを追加します。

Webブラウザーを使用してhttp://your_server_ip:8983/solrにアクセスすると、SolrWebインターフェースが表示されます。

Solr Web Interface

Webインターフェイスには、使用中に発生した問題をデバッグするために使用できる多くの有用な情報が含まれています。

コレクションはコアに分割されているため、Webインターフェイスにはコアへの参照が多数あります。 現在、コレクションgettingstartedには、gettingstartedという名前のコアが1つだけ含まれています。 左側にコアセレクタープルダウンメニューが表示され、gettingstartedを選択して詳細を表示できます。

gettingstartedコアを選択したら、ドキュメントを選択します。 ドキュメントには、Solrが検索できる実際のデータが格納されています。 スキーマレス構成を使用したため、任意のフィールドを使用できます。 以下をDocument(s)フィールドにコピーして、次の例のJSON表現を含む単一のドキュメントを追加しましょう。

{
    "number": 1,
    "president": "George Washington",
    "birth_year": 1732,
    "death_year": 1799,
    "took_office": "1789-04-30",
    "left_office": "1797-03-04",
    "party": "No Party"
}

ドキュメントの送信をクリックして、ドキュメントをインデックスに追加します。 しばらくすると、次のように表示されます。

ドキュメント追加後の出力
Status: success
Response:
{
  "responseHeader": {
    "status": 0,
    "QTime": 509
  }
}

類似または完全に異なる構造でさらにドキュメントを追加できますが、1つのドキュメントだけで続行することもできます。

次に、左側のクエリを選択して、追加したばかりのドキュメントをクエリします。 この画面のデフォルト値では、クエリの実行をクリックした後、追加した数に応じて、最大10個のドキュメントが表示されます。

クエリ出力
{
  "responseHeader": {
    "status": 0,
    "QTime": 58,
    "params": {
      "q": "*:*",
      "indent": "true",
      "wt": "json",
      "_": "1436827539345"
    }
  },
  "response": {
    "numFound": 1,
    "start": 0,
    "docs": [
      {
        "number": [
          1
        ],
        "president": [
          "George Washington"
        ],
        "birth_year": [
          1732
        ],
        "death_year": [
          1799
        ],
        "took_office": [
          "1789-04-30T00:00:00Z"
        ],
        "left_office": [
          "1797-03-04T00:00:00Z"
        ],
        "party": [
          "No Party"
        ],
        "id": "1ce12ed2-add9-4c65-aeb4-a3c6efb1c5d1",
        "_version_": 1506622425947701200
      }
    ]
  }
}

結論

利用できるオプションは他にもたくさんありますが、これでSolrが正常にインストールされ、自分のサイトで使用できるようになりました。