ApacheSolr-データのインデックス作成

一般に、 indexing文書または(他のエンティティ)を体系的に配置したものです。インデックスを作成すると、ユーザーはドキュメント内の情報を見つけることができます。

  • インデックス作成は、ドキュメントを収集、解析、および保存します。

  • インデックス作成は、必要なドキュメントを検索しながら検索クエリの速度とパフォーマンスを向上させるために行われます。

ApacheSolrでのインデックス作成

Apache Solrでは、xml、csv、pdfなどのさまざまなドキュメント形式にインデックスを付ける(追加、削除、変更)ことができます。いくつかの方法でSolrインデックスにデータを追加できます。

この章では、インデックス作成について説明します-

  • SolrWebインターフェースの使用。
  • Java、PythonなどのクライアントAPIのいずれかを使用します。
  • を使用して post tool

この章では、さまざまなインターフェース(コマンドライン、Webインターフェース、およびJavaクライアントAPI)を使用してApacheSolrのインデックスにデータを追加する方法について説明します。

Postコマンドを使用したドキュメントの追加

Solrには post その中のコマンド bin/ディレクトリ。このコマンドを使用すると、Apache SolrでJSON、XML、CSVなどのさまざまな形式のファイルにインデックスを付けることができます。

を閲覧する bin Apache Solrのディレクトリを実行し、 –h option 次のコードブロックに示すように、postコマンドの

[Hadoop@localhost bin]$ cd $SOLR_HOME 
[Hadoop@localhost bin]$ ./post -h

上記のコマンドを実行すると、のオプションのリストが表示されます post command、以下に示すように。

Usage: post -c <collection> [OPTIONS] <files|directories|urls|-d [".."]> 
or post –help  
   collection name defaults to DEFAULT_SOLR_COLLECTION if not specified  
OPTIONS 
======= 
Solr options: 
   -url <base Solr update URL> (overrides collection, host, and port) 
   -host <host> (default: localhost) 
   -p or -port <port> (default: 8983) 
   -commit yes|no (default: yes)  

Web crawl options:  
   -recursive <depth> (default: 1) 
   -delay <seconds> (default: 10)  

Directory crawl options: 
   -delay <seconds> (default: 0)  

stdin/args options: 
   -type <content/type> (default: application/xml)  

Other options: 
   -filetypes <type>[,<type>,...] (default:   
   xml,json,jsonl,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,
   rtf,htm,html,txt,log) 
   -params "<key> = <value>[&<key> = <value>...]" (values must be 
   URL-encoded; these pass through to Solr update request) 
   -out yes|no (default: no; yes outputs Solr response to console) 
   -format Solr (sends application/json content as Solr commands 
   to /update instead of /update/json/docs)  

Examples: 
* JSON file:./post -c wizbang events.json 
* XML files: ./post -c records article*.xml 
* CSV file: ./post -c signals LATEST-signals.csv 
* Directory of files: ./post -c myfiles ~/Documents 
* Web crawl: ./post -c gettingstarted http://lucene.apache.org/Solr -recursive 1 -delay 1 
* Standard input (stdin): echo '{commit: {}}' | ./post -c my_collection -
type application/json -out yes –d 
* Data as string: ./post -c signals -type text/csv -out yes -d $'id,value\n1,0.47'

次の名前のファイルがあるとします。 sample.csv 次の内容で( bin ディレクトリ)。

学生証 ファーストネーム ラスト名 電話
001 ラジブ レディ 9848022337 ハイデラバード
002 シッダールス バタチャリヤ 9848022338 コルカタ
003 ラジェッシュ カンナ 9848022339 デリー
004 Preethi アガルワル 9848022330 プネ
005 Trupthi モハンティ 9848022336 ブバネシュワール
006 アルカナ ミシュラ 9848022335 チェンナイ

上記のデータセットには、学生ID、名、姓、電話番号、都市などの個人情報が含まれています。データセットのCSVファイルを以下に示します。ここで、最初の行を文書化して、スキーマについて言及する必要があることに注意する必要があります。

id,    first_name,   last_name,   phone_no,      location 
001,   Pruthvi,      Reddy,       9848022337,    Hyderabad 
002,   kasyap,       Sastry,      9848022338,    Vishakapatnam 
003,   Rajesh,       Khanna,      9848022339,    Delhi 
004,   Preethi,      Agarwal,     9848022330,    Pune 
005,   Trupthi,      Mohanty,     9848022336,    Bhubaneshwar 
006,   Archana,      Mishra,      9848022335,    Chennai

このデータには、という名前のコアの下でインデックスを付けることができます sample_Solr を使用して post 次のようにコマンド-

[Hadoop@localhost bin]$ ./post -c Solr_sample sample.csv

上記のコマンドを実行すると、指定されたドキュメントは指定されたコアの下にインデックスが付けられ、次の出力が生成されます。

/home/Hadoop/java/bin/java -classpath /home/Hadoop/Solr/dist/Solr-core
6.2.0.jar -Dauto = yes -Dc = Solr_sample -Ddata = files 
org.apache.Solr.util.SimplePostTool sample.csv 
SimplePostTool version 5.0.0 
Posting files to [base] url http://localhost:8983/Solr/Solr_sample/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 sample.csv (text/csv) to [base] 
1 files indexed. 
COMMITting Solr index changes to 
http://localhost:8983/Solr/Solr_sample/update... 
Time spent: 0:00:00.228

次のURLを使用してSolrWebUIのホームページにアクセスします-

http://localhost:8983/

コアを選択します Solr_sample。デフォルトでは、リクエストハンドラは/selectクエリは「:」です。変更を加えずに、ExecuteQuery ページ下部のボタン。

クエリを実行すると、次のスクリーンショットに示すように、JSON形式(デフォルト)のインデックス付きCSVドキュメントの内容を確認できます。

Note −同様に、JSON、XML、CSVなどの他のファイル形式にインデックスを付けることができます。

SolrWebインターフェースを使用したドキュメントの追加

Solrが提供するWebインターフェースを使用して文書に索引を付けることもできます。次のJSONドキュメントにインデックスを付ける方法を見てみましょう。

[ 
   { 
      "id" : "001", 
      "name" : "Ram", 
      "age" : 53, 
      "Designation" : "Manager", 
      "Location" : "Hyderabad", 
   }, 
   { 
      "id" : "002", 
      "name" : "Robert", 
      "age" : 43, 
      "Designation" : "SR.Programmer", 
      "Location" : "Chennai", 
   }, 
   { 
      "id" : "003", 
      "name" : "Rahim", 
      "age" : 25, 
      "Designation" : "JR.Programmer", 
      "Location" : "Delhi", 
   } 
]

ステップ1

次のURLを使用してSolrWebインターフェースを開きます-

http://localhost:8983/

Step 2

コアを選択します Solr_sample。次のスクリーンショットに示すように、デフォルトでは、フィールドRequest Handler、Common Within、Overwrite、およびBoostの値はそれぞれ/ update、1000、true、および1.0です。

次に、JSON、CSV、XMLなどから必要なドキュメント形式を選択します。インデックスを作成するドキュメントをテキスト領域に入力し、[ Submit Document 次のスクリーンショットに示すように、ボタン。

JavaクライアントAPIを使用したドキュメントの追加

以下は、ApacheSolrインデックスにドキュメントを追加するJavaプログラムです。このコードを名前のファイルに保存しますAddingDocument.java

import java.io.IOException;  

import org.apache.Solr.client.Solrj.SolrClient; 
import org.apache.Solr.client.Solrj.SolrServerException; 
import org.apache.Solr.client.Solrj.impl.HttpSolrClient; 
import org.apache.Solr.common.SolrInputDocument; 

public class AddingDocument { 
   public static void main(String args[]) throws Exception { 
      //Preparing the Solr client 
      String urlString = "http://localhost:8983/Solr/my_core"; 
      SolrClient Solr = new HttpSolrClient.Builder(urlString).build();   
      
      //Preparing the Solr document 
      SolrInputDocument doc = new SolrInputDocument(); 
   
      //Adding fields to the document 
      doc.addField("id", "003"); 
      doc.addField("name", "Rajaman"); 
      doc.addField("age","34"); 
      doc.addField("addr","vishakapatnam"); 
         
      //Adding the document to Solr 
      Solr.add(doc);         
         
      //Saving the changes 
      Solr.commit(); 
      System.out.println("Documents added"); 
   } 
}

ターミナルで次のコマンドを実行して、上記のコードをコンパイルします-

[Hadoop@localhost bin]$ javac AddingDocument 
[Hadoop@localhost bin]$ java AddingDocument

上記のコマンドを実行すると、次の出力が得られます。

Documents added