一括アップロード機能 | KandaSearch Community Support Forum

一括アップロード機能

トピック作成者:ks-solruserml-bot (2025/10/24 18:50 投稿)
5
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/njmtmo8w04nr7cq49cq986262274vc8q into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、皆さん。

Solr は初心者なのですが、質問があります。Solr には、HBase や Cassandra のように、既存のコレクションに対してリアルタイムでセグメントを追加できるような一括アップロード機能はありますか?

もしそのような機能がない場合、この機能を実装することを妨げるようなコード上の制約はありますか?

ありがとうございます。
rahul

返信投稿者:ks-solruserml-bot (2025/10/24 18:50 投稿)

こんにちは、そしてようこそ :)

Solr には、一度に複数のドキュメントを送信できるさまざまなインターフェースがあります。
(まずはこのページから始めてみてください。次のページ以降にも詳しい情報があります:
https://solr.apache.org/guide/solr/latest/indexing-guide/indexing-with-update-handlers.html

これらのインターフェースを使ってバッチでデータを送信するのが一般的な方法です。

もし「サーバーへの負荷を減らすために、あらかじめインデックス済みデータを計算しておく」という意味であれば、事前解析済みフィールド(Pre-analyzed Fields) を使う方法もあります。
(参考: https://solr.apache.org/guide/solr/latest/indexing-guide/external-files-processes.html#the-preanalyzedfield-type

この方法に関しては、私(Gus)が主に開発した JesterJ プロジェクトに組み込みサポートがあります:
PreAnalyzeFields.java
— このプロセッサは、これまでに1つのプロジェクトで成功裏に使用したことがあります。

また、人によっては、あるシステムでインデックスを構築してから、別のシステムにインデックスをコピーまたはレプリケートするという方法も採っています(これはカスタム設計が必要なアプローチです)。

いずれの方法でも、Solr の コミット間隔手動コミットリクエスト に左右されます(手動コミットは慎重な計画のもとで特別な場合にのみ使用するのが推奨されます)。

このように、いくつかの選択肢があります(ここで挙げていないものの中には Streaming Expressions を使う方法などもあります)。
ただし、どの方法が適切かを判断するためには、あなたが解決しようとしている問題の詳細 をもう少し教えてもらえると助かります。
(「やりたいこと」ではなく、「解決したい問題」を説明してもらえるとより良いアドバイスができます。)

— Gus

http://www.needhamsoftware.com(仕事用)
https://a.co/d/b2sZLD9(私のファンタジー小説)

返信投稿者:ks-solruserml-bot (2025/10/24 18:51 投稿)

短く言うと、Solr にデータを取り込む方法は一括アップロード(bulk upload)だけです。
トランザクション型のインターフェースは存在しません。

wunder
Walter Underwood
wunder@wunderwood.org
http://observer.wunderwood.org/ (私のブログ)

返信投稿者:ks-solruserml-bot (2025/10/24 18:52 投稿)

唯一「良い」方法ですね。😉
1 件ずつドキュメントを送信して、各ドキュメントごとに強制的にコミットする人たちを見たことがあります。
これは厳密にはトランザクション処理ではありませんが、明らかに一括処理(bulk)でもありません。

http://www.needhamsoftware.com(仕事用)
https://a.co/d/b2sZLD9(私のファンタジー小説)

返信投稿者:ks-solruserml-bot (2025/10/24 18:52 投稿)

私は楽天で働いていたことがありますが、そこでは独自のスタックを使っていました:
Cassandra、Hadoop、Solr です。

Cassandra にデータをインデックスし、Hadoop がプラグインを使ってドキュメントを処理し、
それらをセグメントにまとめて、稼働中の Solr インデックスにマージしていました。

返信投稿者:ks-solruserml-bot (2025/10/24 18:52 投稿)

1件ずつドキュメントを送信するのも、技術的には「一括ロードAPI」を使っていることになります。
ただし、とても非効率的ですが 😄

Solr はトランザクショナルではありません
ロールバックもなければ、アイソレーションもありません。
つまり、ACID特性はまったく持っていないということです。

wunder
Walter Underwood
wunder@wunderwood.org
http://observer.wunderwood.org/ (私のブログ)

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2025 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?