Apache Solrにデータをインポートする方法 - TechRepublic

Apache Solrにデータをインポートする方法 - TechRepublic
Apache Solr ジャックへのデータインポート
画像: Looker_Studio/Adobe Stock

先日、エンタープライズグレードの検索プラットフォームであるApache Solrの導入プロセスをご説明しました。このツールを使えば、膨大な量のデータを取得し、ヒットハイライト、リアルタイムインデックス、動的クラスタリングなどを活用した強力な検索クエリを実行できます。

Apache Solr をデプロイしたら、データを検索できるようにコレクションに追加する必要があります。ここでは、CSV 形式のデータリスト(任意のサイズに対応)を新しいコレクションにインポートし、新しいデータに対してクエリを実行します。

参照: 採用キット: データベースエンジニア (TechRepublic Premium)

必要なもの

この手順を実行するには、Apache Solr インスタンス(Solr ユーザーの認証情報を含む)と CSV データファイルが必要です。テンプレートとして使用できるサンプルの CSV データファイルを作成します。

インポート用のCSVファイルを作成する方法

まず最初に、Apache SolrをホストしているサーバーにSSHまたはローカルログインでログインする必要があります。ログインしたら、次のコマンドで新しいファイルを作成します。

nano ~/solrdata.csv

このファイルには好きな名前を付けて、任意のディレクトリに保存できます。各列の名前を含む先頭行を作成します。ここでは、国を定義するCSVファイルを使って説明します。先頭行では、国コード、地域、サブ地域などのいくつかの項目を定義します。内容は以下のとおりです。

name,alpha-2,alpha-3,country-code,iso_3166-2,region,sub-region,intermediate-region,region-code,sub-region-code,intermediate-region-code

ファイルの残りの部分には次のようなエントリが含まれます。

Afghanistan,AF,AFG,004,ISO 3166-2:AF,Asia,Southern Asia,"",142,034,""

Åland Islands,AX,ALA,248,ISO 3166-2:AX,Europe,Northern Europe,"",150,154,""

Albania,AL,ALB,008,ISO 3166-2:AL,Europe,Southern Europe,"",150,039,""

Algeria,DZ,DZA,012,ISO 3166-2:DZ,Africa,Northern Africa,"",002,015,""

American Samoa,AS,ASM,016,ISO 3166-2:AS,Oceania,Polynesia,"",009,061,""

Andorra,AD,AND,020,ISO 3166-2:AD,Europe,Southern Europe,"",150,039,""

Angola,AO,AGO,024,ISO 3166-2:AO,Africa,Sub-Saharan Africa,Middle Africa,002,202,017

次のコマンドでサンプル country.csv ファイル全体をダウンロードできます。

wget https://cdn.wsform.com/wp-content/uploads/2018/09/country.csv

そのファイルを Apache Solr ホスティング マシンのローカル ドライブに保存します。

新しいコレクションを作成する方法

国データを格納するための新しいコレクションを作成しましょう。このコレクションの名前は「country_data」とし、以下のコマンドで作成します。

su - solr -c "/opt/solr/bin/solr create -c country_data -n data_driven_schema_configs"

Solrユーザーのパスワードの入力を求められます。認証に成功するとコレクションが作成され、次のステップに進むことができます。

データのインポート方法

次のコマンドを使用して、Solr が格納されているディレクトリに移動します。

cd /opt/solr

次のコマンドでデータをインポートできます。

./bin/post -c country_data /path/to/country.csv

/path/to新しくダウンロードした country.csv ファイルが格納されているディレクトリへの正確なパスはどこですか。

次のような出力が表示されます。

Posting files to [base] url http://localhost:8983/solr/country_data/update...

Entering auto mode. File endings considered are xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log

POSTing file country.csv (text/csv) to [base]

1 files indexed.

COMMITting Solr index changes to http://localhost:8983/solr/country_data/update...

Time spent: 0:00:02.674

新しいデータの表示方法

http://SERVER:8983ブラウザで(SERVERホスティングサーバーのIPアドレス)にアクセスし、Apache Solrのウェブインターフェースにログインします。左側のナビゲーションにある「newdata」ドロップダウンから「country_data」を選択します。表示されるウィンドウ(図A)で、「クエリ」をクリックします。

図A

ソルデータ-a
画像: Jack Wallen/TechRepublic。country_dataコレクションにはインポートしたデータが格納されています。

表示されたウィンドウで、何も変更せずに「クエリの実行」をクリックすると、インポートされたドキュメント全体がリストされます (図 B )。

図B

ソルデータ-b
画像: Jack Wallen/TechRepublic。国全体のCSVファイルが検索可能になりました。

例えば、アイルランドを検索したいとします。「common」の下の「q」セクションに「Ireland」と入力し、「Execute Query」をクリックします。結果には、ご想像のとおり、アイルランドのエントリのみが表示されます(図C)。

図C

ソルデータ-c
画像: Jack Wallen/TechRepublic。アイルランドは捜索され、発見された。

CSVデータをインポートするさらに簡単な方法

CSV データを Apache Solr にインポートするより簡単な方法もあります。

「datacollection」という新しいコレクションを作成し、Webベースのインターフェースからcountry.csvファイルをインポートしたいとします。Apache Solrにログインし、ドロップダウンから「datacollection」を選択し、左側のナビゲーションで「ドキュメント」をクリックします。表示されるウィンドウで、「ドキュメントタイプ」ドロップダウンから「CSV」を選択し、country.csvファイルの内容全体を「ドキュメント」セクションにコピー&ペーストします(図D)。

図D

ソルデータ-d
画像: Jack Wallen/TechRepublic。Apache SolrのWebベースインターフェースからCSVファイルをインポートしています。

「ドキュメントの送信」をクリックすると、最終的に次の出力が (右側のペインに) 表示されます。

Status: success

Response:

{

"responseHeader": {

"status": 0,

"QTime": 3533

}

}

これで、以前と同じ方法でインポートしたデータをクエリできるはずです。

CSV形式のデータをApache Solrにインポートする方法は以上です。これは非常に強力なツールで、膨大なデータコレクションを簡単に検索できます。ビジネスでデータ活用が重要な場合、Solrは必要なツールの一つとなるでしょう。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

Tagged: