2016-12-13 4 views
0

私は、UIの主な検索機能の全文検索とセマンティック検索を使用する既存のSQL Serverデータベースを持っています。検索に使用されるテーブルには、約100万行のデータが含まれています。Azure既存のデータベースから検索

私はAzure Searchを使用してこれを置き換えることを検討していますが、私のデータベースはそのフル機能のためにFull Text Enabledテーブルに依存しています。私はAzure Searchを "検索"に使用したいと思いますが、何かが見つかったときにレコードを編集して詳細レコードを表示できるように、現在のテーブル構造を維持しています。

  1. を返すためにAzureの検索
  2. Azureの検索にSQL Serverで本文対応表からAzureのインデックスに検索可能なデータのすべてを
  3. プッシュを作成します。これを実装する

    私の考えがにあります検索条件に一致する文書のID

  4. 既存のデータベースを照会して、フロントエンドに表示するIDを含む行をフェッチします。
  5. 既存のデータベースの一部のデータAzure Searchで更新をスケジュールしてデータが同期していることを確認する

これは良いアプローチですか?既存のデータがオンデマンドのデータベースにあるが、Azure Searchを利用したい場合、ハイブリッド実装はどのように機能しますか?

答えて

3

全体として、あなたのアプローチは合理的です。役に立つかもしれないポインタのカップル:

  1. AzureのSQLは現在、全文検索のためのサポートを持っているので、AzureのSQLに移動するあなたのためのオプションであり、あなたはまだAzureの検索を使用したい場合は、あなたがAzure SQL indexerを使用することができます。または、SQL ServerをIaaS VM上で実行し、指示書hereを使用してインデクサーを構成することもできます。

  2. オンデマンドSQL Serverでは、Azureデータファクトリsink for Azure Searchを使用してデータを同期することができます。

+0

ありがとうEugene、データファクトリーは本当に面白そうです。 – Paul

1

私は実際にこのプロセスをほぼ完了しました。 SQL Serverではなく、異なるバックエンドデータストアを使用しています。

まず、既存のデータをすべて同期するアプリケーションを作成しました。ものすごく単純。

新しい文書が追加されると、非同期ではなく同期でAzure Searchに同期するように選択しました。インデックスに追加して更新するときに優れたパフォーマンスが測定されたため、この方法を選択しました。応答時間は50〜200ミリ秒で、何十万ものレコードには何の障害もありません。私たちは、労働者、耐久性のあるキューなどを構築し維持するための追加コストを正当化することはできませんでした。警告:Webサービスは、Azure Searchインスタンスと同じAzure領域にあります。 SQL Serverがオンプレミアの場合は、待ち時間が長くなります。

Azure Searchで各レコードの約80%を保存しました。明らかにAzure Searchに保存するほど、最悪の場合のシリアル「ダブルクエリー」を実行する可能性は低くなります。

+0

同期リクエストのperfについて知っておくと便利です – Paul

関連する問題