
先日、エンタープライズグレードの検索プラットフォームである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

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

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

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

「ドキュメントの送信」をクリックすると、最終的に次の出力が (右側のペインに) 表示されます。
Status: success
Response:
{
"responseHeader": {
"status": 0,
"QTime": 3533
}
}
これで、以前と同じ方法でインポートしたデータをクエリできるはずです。
CSV形式のデータをApache Solrにインポートする方法は以上です。これは非常に強力なツールで、膨大なデータコレクションを簡単に検索できます。ビジネスでデータ活用が重要な場合、Solrは必要なツールの一つとなるでしょう。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。