問題タブ [dataimporthandler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - インターネット経由で大量のデータを含む SQL データベースにクエリを実行しているときに発生する可能性のある問題
Web クローラーによってインデックス化されたデータを含む 1 つの MSSQL サーバー上に、この大きなデータベースがあります。毎日、別のサーバーと別のネットワークにある DataImportHandler を使用して、SOLR SearchEngine インデックスを更新したいと考えています。
Solr DataImportHandler はクエリを使用して SQL からデータを取得します。たとえば、このクエリ
ImportHandler は、このタイプの 8 つの選択を行います。各選択は、データベースから約 1000 行を取得します。
SQL SERVERに接続するには、com.microsoft.sqlserver.jdbc.SQLServerDriverを使用しています
接続のために追加できるパラメータは次のとおりです。
- responseBuffering="適応/すべて"
- batchSize="整数"
だから私の質問は:
このクエリを毎日実行しているときに何が問題になる可能性がありますか? (ネットワーク エラーを除く) この状況で SQL Server がどのように機能しているか知りたいですか。
さらに、このインポートを実装する方法とエラーの処理方法について決定を下す必要がありますが、まず、どのようなエラーが発生する可能性があるかを知る必要があります。
ありがとう!
後で編集
私の問題は、この SQL クエリがどのように失敗するのかがわからないことです。このインポーターを毎日呼び出すと、データベースに対して 10 件のクエリが実行されます。5 番目のクエリが失敗した場合は、トランザクション全体をロールバックしてもう一度実行するか、最初の 4 つのクエリから取得したデータをコミットして、クエリ 5 から 10 をやり直すかを選択する必要があります。ただし、他の問題が原因でこのクエリが常に失敗する場合、このデータをインポートする別の方法を考える必要があります。
タイムアウト操作などのために、インターネット経由のこの SQL クエリが失敗することはありますか?
solr - DataImportHandlerを使用するときにSolrロケーション(空間)フィールドにデータを入力するには、どのSQLデータ型を使用する必要がありますか?
フィールドを含むSolrスキーマがありlocation
ます(デフォルトを使用solr.LatLonType
):
そして、DataImportHandlerを使用してデータを入力しようとしています。現在、私は;SELECT
の形式のnvarcharとしての値です。17.74628,-64.70725
ただし、Solrフィールドには入力されていません(空のままです)。
location
Solrのフィールドを更新するには、この列をどのタイプと形式にする必要がありますか?
solr - オプションのサブエンティティを含む Solr DataImportHandler
DataImportHandler
データベースにインデックスを付けるように構成していますが、この問題に遭遇しました。
別のテーブルへのfkであるnull許容整数フィールドFを持つテーブルAがあります(Bと呼びます)。私はこのようにモデリングしていました:
問題は、F が NULL の場合、${main.F} が何も置き換えられず、次のクエリを実行しようとするため、実行時エラーが発生することです。
この状況を処理する方法はありますか?
solr - Solr:ファイルエンティティプロセッサとデルタインポート
solr 3.3を使用していますが、ファイルエンティティプロセッサとtikaエンティティプロセッサでデルタインポートを使用したいと思います。完全インポートは正常に機能しますが、デルタインポートパラメータは新しいドキュメントをインポートしません。
ありがとう
solr - UIMAをSOLRDataimporthandlerにどのように結び付けますか?
ApacheUIMAを使用していくつかのテストを行っています。結果は素晴らしいです!
私たちの理想的なセットアップは、UIMAとSOLRの緊密な統合です。理想的には、追加のメタデータのために、UIMAを過ぎてインデックスを作成するすべてのコンテンツを渡したいと思います。
UIMAをSOLRUpdateハンドラーと統合する方法の例とドキュメントがありますが、理想的には、既存のDataImportHandler(DIH)を使用したいと思います。すべてのデータはJDBC接続を介してインポートされるため、インデックスを作成する前にUIMAに渡す必要があります。
誰かがこれを達成する方法に光を当てることができますか?
ありがとう、
レネ
xml - XMLファイルでSolrDataImportHandlerを使用する方法は?
私はDataImportHandlerを使用して、FileListEntityProcessorでFileDataSourceを使用してデータファイルをインポートすることを研究しています。開始する前に、皆さんが支援してくれることを期待しているいくつかの質問があります。
1)構成された場所のローカルファイルシステムにファイルを配置し、Solrにファイルを表示して処理させたいのですが、追加の作業は必要ありません。これは何らかの方法で実行可能ですか?私が見たところ、これはサポートされておらず、手動でURLを呼び出す必要があります(例: http:// foo / solr / dataimport?command = full-import)。手動のURLベースの呼び出し方法は、データベース指向の世界では完全に論理的であるように見えます。データベース指向の世界では、更新を定期的に実行するようにスケジュールできますが、私の場合、負荷分散された同じインデックスがいくつかあり、同じものを実行したくありません。大量のクエリを複数回並行して実行します。そのため、私は1つのクエリを実行し、結果をXMLファイルに書き込み、そのファイルを各ボックスにプッシュしてから、そのファイルを処理します。プロセスをできるだけ自動化してほしい。
2)Solrによって処理されたファイルは、インポート後に削除したいのですが。私は現在これを行う方法を見ていません。何かをサブクラス化できるかもしれないと思いましたが、たとえば、FileListEntityProcessorは、ワークフロー内の適切なタイミングでファイルを削除するためのハンドルを提供していないようです。私が見ることができる他の場所はありますか?
3)DIHのドキュメントを読んでいるときに、次のステートメントに出くわしました。「delta-importコマンドを実行すると、conf / dataimport.propertiesに保存されている開始時刻が読み取られます。そのタイムスタンプを使用してデルタクエリが実行され、完了後に更新されます。conf/dataimport.propertiesのタイムスタンプ。」実際に日付を完了日に更新する場合、開始日と終了日の間に追加されたファイルはどうなりますか?彼らは失われていますか?
4)デルタインポートの場合、conf / dataimport.propertiesファイルに記載されているファイルよりも古いファイルを再インポートしないようにする以外に、処理されたファイルの順序については言及されていません。順序が重要な場合、ファイルを名前または作成日で順序付けますか、それとも...?
solr - 複数のエンティティからのSolrへのデータのインポート
SQLServerデータベースのデータインポートハンドラーを試しています。
にDIhandlerを追加し、データベーススキーマに従ってsolrconfig.xml
作成し、別のフィールドも追加しました。SQLServerデータベースに接続しています。data-config.xml
schema.xml
接続して実行した後、dataimport?command=full-import
xmlタグ(データ)が正しく取得されていません。
私のdata -config.xmlで*****
これで、結果は* ******になります。
両方の表でデータが見つかった場合
<ドキュメント>
/li>データがアイテムテーブルにあるがReturnSolrFilterにはない場合、タグは生成されません(これは実際の問題ですCustomFieldタグは生成されません)
<ドキュメント>
<int name = "Item_ID"> 13773 </ int>
<str name = "itemcode"> 15438680 </ str>
</ doc>
oracle - Solr DataImportHandler インデックスの間違った Oracle 日付
Solr 3.4 を使用して、Oracle 10 データベースから DataImportHandler によって取得されたフィールドにインデックスを付けます。タイプ「DATE」の Oracle フィールドの値は 2011-09-20 です。タイプ「solr.TrieDateField」の Solr インデックス フィールドの値は 2011-09-19T22:00:00Z です。私の (oracle、solr、windows) タイムゾーンは GMT+1 です。solr インデックス フィールドの値は 2011-09-19T23:00:00Z であると予想していました。なぜそうではないのですか?
構成:
ojdbc14 バージョン 11.2.0.2 を使用しています
Solr admin -> Java プロパティ -> user.timezone = Europe/Belgrade (GMT+1)
調査の結果、考えられる原因が見つかりました:
solr は sessiontimezone の代わりに dbtimezone を使用していますか?
私は答えを見つけました:
最初の日付には夏時間が含まれますが、2 番目の日付には含まれません。とても明白です。
solr - マルチコアのrequestHandlerコード
2つのコアを作成しましたが、http:// {localhost}:8983 / solr /が表示されており、クリックすると管理パネルが開きます。solr.xmlファイルには以下のコードがあります。
それに応じてフォルダを作成します。しかし、それにハンドラーを追加しようとすると、core1-> config-> solrconfig.xmlのcore1に想定すると、core0がコアリストから消えます。
requesthandlerのコアを以下に示します。
ハンドラーでコア名を渡してみました。
しかし、それは機能しませんでした。
2つのコアを実行するために何か他のものを変更する必要がありますか?