第155章 Solr
Solr コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.9 以降で利用可能
Solr コンポーネントを使用すると、Apache Lucene Solr サーバー(SolrJ 3.5.0)とのインターフェイスが可能になります。
Maven ユーザーは、このコンポーネントの
pom.xml に以下の依存関係を追加する必要があります。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
URI 形式は以下のとおりです。
solr://host[:port]/solr?[options] solrs://host[:port]/solr ?[options] solrCloud://host[:port]/solr?[options]
solr://host[:port]/solr?[options]
solrs://host[:port]/solr ?[options]
solrCloud://host[:port]/solr?[options]
エンドポイントオプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の SolrServer オプションは、Solr エンドポイントで設定できます。
| name | デフォルト値 | description |
|---|---|---|
maxRetries
|
0
|
一時的なエラーが発生した場合に試行する最大再試行回数 |
soTimeout
|
1000
|
基礎となる HttpConnectionManager で読み取りタイムアウト。これはクエリーに適していますが、インデックス作成には適していません。 |
connectionTimeout
|
100
|
基礎となる HttpConnectionManager の connectionTimeout |
defaultMaxConnectionsPerHost
|
2
|
基礎となる HttpConnectionManager の maxConnectionsPerHost |
maxTotalConnections
|
20
|
基礎となる HttpConnectionManager の maxTotalConnection |
followRedirects
|
false
|
Solr サーバーへリダイレクトが使用されるかどうかを示します。 |
allowCompression
|
false
|
これを有効にするには、サーバー側が gzip または deflate をサポートする必要があります。 |
requestHandler
|
/update (xml) | 使用するリクエストハンドラーの設定 |
streamingThreadCount
|
2
|
Camel 2.9.2 で StreamingUpdateSolrServerのスレッド数を設定する |
streamingQueueSize
|
10
|
Camel 2.9.2 で StreamingUpdateSolrServerのキューサイズを設定する |
zkhost
|
null
|
Camel 2.14.0 は、zkhost=localhost:8123など、solrCloud が使用可能な zoo keeper ホスト情報を設定します。
|
collection
|
null
|
Camel 2.14.0 は、solrCloud サーバーが使用できるコレクション名を設定します
|
メッセージ操作 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の Solr 操作は現在サポートされています。キー
SolrOperation でエクスチェンジヘッダーを設定し、値は以下のいずれかに設定します。一部の操作では、メッセージボディーも設定する必要があります。
INSERT操作は CommonsHttpSolrServerを使用します。
| operation | メッセージボディー | description |
|---|---|---|
INSERT/INSERT_STREAMING
|
該当なし | メッセージヘッダーを使用してインデックスを追加します(SolrField の接頭辞が必要です)。 |
INSERT/INSERT_STREAMING
|
File | 指定されたファイルを使用してインデックスを追加します(ContentStreamUpdateRequest を使用)。 |
INSERT/INSERT_STREAMING
|
SolrInputDocument | Camel 2.9.2 は、指定の SolrInputDocument に基づいてインデックスを更新します。 |
INSERT/INSERT_STREAMING
|
String XML | Camel 2.9.2 は、指定の XML に基づいてインデックスを更新します(SolrInputDocument 形式に従う必要があります) |
ADD_BEAN
|
Bean インスタンス | アノテーションが付けられた Beanの値に基づいてインデックスを追加します。 |
ADD_BEANS
|
collection<bean> | Camel 2.15 は、アノテーションが付けられた Bean のコレクションに基づいてインデックスを追加します。 |
DELETE_BY_ID
|
削除するインデックス ID | ID 別にレコードを削除する |
DELETE_BY_QUERY
|
クエリー文字列 | クエリーによるレコードの削除 |
COMMIT
|
該当なし | 保留中のインデックス変更でコミットを実行します。 |
ROLLBACK
|
該当なし | 保留中のインデックス変更でロールバックを実行します。 |
OPTIMIZE
|
該当なし | 保留中のインデックス変更でコミットを実行し、最適化コマンドを実行します。 |
例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下は、簡単な
INSERT、DELETE および COMMIT の例です。
クライアントは単にメッセージボディーを挿入ルートまたは削除ルートに渡してから、コミットルートを呼び出す必要があります。
template.sendBody("direct:insert", "1234");
template.sendBody("direct:commit", null);
template.sendBody("direct:delete", "1234");
template.sendBody("direct:commit", null);
template.sendBody("direct:insert", "1234");
template.sendBody("direct:commit", null);
template.sendBody("direct:delete", "1234");
template.sendBody("direct:commit", null);
Solr のクエリー リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
現在、このコンポーネントはデータのクエリーをネイティブにサポートしません(後で追加される可能性があります)。ここでは、以下のように HTTP を使用して Solr をクエリーできます。
詳細は、これらのリソースを参照してください。