2017-03-01 7 views
0

SQL server dbを使用してWebformsアプリケーションをサポートしています。SQL ServerデータをNoSQLまたはES/Solrに移動する際の提案

私たちは、Findページで選択されたフィルタ条件に基づいて、本質的にdbから読み込むFind機能をアプリケーションに持っています。私は、検索エンジンに似て、これをもっとパフォーマンス的でダイナミックにしたいと思います。

SQL ServerからESにデータを移動しようとしましたが、失敗しました。私はまた、データをNoSQLデータベースまたは検索エンジンにリアルタイムで移動する必要があります。

ES/SolrまたはNoSQLは、SQL Serverから直接読み取ることはできますか?それは待ち時間を引き起こすでしょうか?

上記の説明が不明な場合は申し訳ありませんが、最初は可能なオプションについて高度に理解しようとしています。

ありがとうございます。

答えて

0

だから私が間違っていると私が訂正したいのは、あなたのSQLサーバのすべてのデータをSolrに移すことですか?

この場合、JDBCとマネージドスキーマを使用してそのようにすることができます。基本的に、JDBCを使用すると、SolrをSQLデータベースに接続し、クエリを実行して結果を索引付けすることができます。これはSolrのデータインポートハンドラで使用することができますが、DIHはちょっとしたもので、本番環境には適していません(1つのインデックスでは受け入れ可能ですが)。this linkを参照してください。私はそれだけで動作していないと一般的な芝生である問題を抱えてきました。

JDBCはSolr固有ではなく、データベースに接続してクエリを実行して結果を受け取るJavaプログラムです。 SQL結果を取得し、Solrに適した形式にフォーマットし、コア/コレクションに投稿するのは難しいことではありません。 Here's JDBCの紹介です。そこにはさらに多くのものがあります。

管理されたスキーマは、フィールドの種類を推測し、必要に応じて作成する柔軟なスキーマです。スキーマを微調整する必要があるまで、最初のパスに適しています。したがって、SQLの結果が索引付けされると、Solrは各列のフィールド型を作成します。

だから、コーディングや構成のビットとあなたはそうのようにそれを得ることができます:あなたのDBに接続するためにJDBCを作成

  1. は、デフォルトのスキーマとコンフィグ
  2. でのSolrコア/コレクションを作成し、必要なクエリを実行
  3. 持っているJDBCは(あまりにもそのことについてそこに情報があるはず、それはあまりにも難しいことではありません、Solrには、多くのフォーマットをaccpets)
  4. それはポストあなたのコア/コレクション
  5. に結果を言ってくださいやさしいファッションをSolrのためにSQLの結果を変換します0
  6. JDBCを実行
+0

こんにちは、Jayce、 ありがとうございました。質問があります。インデックス作成はリアルタイムで行われますか?私はあまりにも理解しようとしていると思う、私はSQLサーバーのデータベースにレコードの束をアップロードする場合、私はすぐにそれをクエリすることができるでしょう。私は推測していない。新しく作成されたレコードは最初に索引付けする必要がありますか? – rrmave

+0

はい、Solrでインデックスを検索してからSolrで検索する必要があります。新しいデータがSQLサーバーにアップロードされるたびに、JDBCの実行をトリガーする設定を行うことができます。ただし、SQLサーバをSolrに置き換えることを目指しているため、Solrに直接インデックスを作成して、SQL DBにアップロードするのを邪魔しないほうがいいでしょう(ただし、SQL DBへのインデックス付けを制御できない限り最初は)。 – Jayce444