Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第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 をクエリーできます。
詳細は、これらのリソースを参照してください。