2012-10-23 12 views
10

Webサイトがあり、そのコンテンツ(HTML)はSQL ServerデータベースからASP.NET C#を使用して生成されます。ASP.NETで検索機能を作成する

ここで、ユーザーがコンテンツを検索できるように、検索機能をウェブサイトに追加します。結果を含む結果ページが表示されます。

これを行うにはどのような方法が最適ですか?

+0

他の解決策はありますか? – TeaDrinkingGeek

+0

カスタムのインデックス作成を行うために、SQLインデックスを使用して、カスタムGoogle検索、既存の商用モジュールを使用して行うことができます。 – Aristos

答えて

2
+0

ウェブサイトが共有サーバー上のISPでホストされている場合はどうですか?何が最良の選択肢ですか? – TeaDrinkingGeek

+0

その場合は、Googleカスタム検索を使用することをお勧めします。 –

+0

ASP.NETを使用して検索ページを書くことを提案していないのに驚いていますか? – TeaDrinkingGeek

5

2つの最適なソリューション:

  • Googleカスタム検索(GCS)
  • SQL Server(マニュアル)

GCS:ここ

は、Googleに完全に依存しています。彼らが60日間であなたのウェブページのインデックスを作成した場合は、幸いです。あなたは一般にウェブページのような、保存されていない情報を見つけることはできません。したがって、ログイン内の任意のコンテンツは、それを忘れてしまった。

また、検索エンジンの最適化にも依存します。ページタイトル、メタ記述などを最適化しないと、検索はそれほど役に立ちません。

カスタムSQL Serverの:

あなたのデータフィールドにフルテキストインデックスを置く場合、あなたのキーワードを検索することができます。これはまともな解決策ですが、インデックスを覚えてください(それ以外の場合は非常に遅くなります)。

このソリューションに関するヘルプは、「SQL Server全文検索」を検索します。

ここでの利点は完全に制御でき、すべてにアクセスできることです。

EDIT:

はもちろん、他の多くのソリューションがあります。私はまた、、またはSolrのようなLuceneの上にいくつかの実装を調べることをお勧めします。しかし、すべての検索機能は、通常、非常に難しく、時間がかかります。

私は以前、FASTを使用していましたが、今日はApptusを使用しています。

EDIT 2:

今日は一つだけ解決策をアドバイスします:ElasticSearchを。それは素晴らしい解決策です。簡単に作業できます。すべてのプラットフォームで動作します。素晴らしいREST APIとJSONに基づいており、非常にうまく機能しています。

0

検索機能を使い、どの言語が好きで、使いやすいかわからない場合は、少し難しいです。

なので、簡単なことはどうですか?ホストされた検索を使用しますか?

このサイトでは、無料で1000までのインデックスが作成され、さまざまな種類のレポートが用意されています。あなたのサイトにシンプルなHTMLを加えて、すべて機能させる必要があるようです。

また、オンデマンドでインデックスを作成したり、スケジュールを設定してあなたのために行うこともできます。 Googleのを待つ必要はありませ...

サイトはSite Level

+0

検索の代替案をありがとう。私はベンチャーキャピタルを見てみましょう。 – TeaDrinkingGeek

1

あなたのページはSQLデータベースから生成されているではありません。私は、関連するデータがaspテンプレートやC#コードではなくSQL DBにあると想定するのは安全だと思います。そのデータを検索するには、contains("search term")関数に基づいて、複数のクエリをデータベースに書き込むことができます。

これらのすべてのクエリを実行し、検索を絞り込むために実行するクエリに基づいてチェックボックスを提供できる高度な検索機能も備えています。

これは、生成されたコンテンツimoよりも生の検索を行うよりも理にかなっています。

+0

このアプローチは、技術的に実現可能であるものの、人々がそのような具体的な観点から考えないため、結果が悪い傾向があります。検索用語を入力し、バリアントなどが考慮されることを期待します。あなたが得るのは、人々が絶えず喧嘩している検索です。 「ハイキングを検索しましたが、「ハイキング」のあるページは表示されません」というような苦情があります。最終的には、全文検索やカスタムGoogle検索のいずれかを使用するほうがよいという意見があります。 – Michael

0

使用Google検索

*あなたは、ウェブサイトの開発と検索のためのSharepointのを使用することができます可能な場合は、各ウェブサイトのためにそこに既にあります。

1

あなたはSOL DBを使用している場合は、その中に検索ボックスのための独自のコードを有効にしてください。例えば、私はビデオポータルを作成しています、私は、オートコンプリートボックスを作った

<script type="text/javascript"> 
    $(document).ready(function() { 
     SearchText(); 
    }); 
    function SearchText() { 
     $(".autosuggest").autocomplete({ 
      source: function (request, response) { 
       $.ajax({ 
        type: "POST", 
        contentType: "application/json; charset=utf-8", 
        url: "Home.aspx/GetAutoCompleteData", 
        data: "{'username':'" + document.getElementById('txtSearch').value + "'}", 
        dataType: "json", 
        success: function (data) { 
         response(data.d); 
        }, 
        error: function (result) { 
         alert("Error"); 
        } 
       }); 
      } 
     }); 
    } 

    $(".autosuggest").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "Home.aspx/GetAutoCompleteData", 
       data: "{'username':'" + document.getElementById('txtSearch').value + "'}", 
       dataType: "json", 
       success: function (data) { 
        response(data.d); 
       }, 
       error: function (result) { 
        alert("Error"); 
       } 
      }); 
     } 
    }); 
</script> 

    /// <summary> 
    /// To AutoSearch. . . 
    /// </summary> 
    /// <param name="userName"></param> 
    /// <returns></returns> 
    public List<string> GetAutoComplete(string userName) 
    { 
     List<string> lstStr = new List<string>(); 
     sqlCon = new SqlConnection(strCon); 
     sqlCmd=new SqlCommand("select DISTINCT OldFileName from UploadedVideo where OldFileName LIKE '%'[email protected]+'%'", sqlCon); 
     sqlCon.Open(); 
     sqlCmd.Parameters.AddWithValue("@SearchText",userName); 
     SqlDataReader reader=null; 
     reader = sqlCmd.ExecuteReader(); 
     while(reader.Read()) 
     { 
      lstStr.Add(reader["OldFileName"].ToString()); 
     } 
     return lstStr; 
    } 

、次のコードを使用して自分自身の検索ボックスで動画を検索しています。ここでの主なことは、独自のコードを使用できることです。 。 。

0

コンテンツがSQLデータベースに格納されており、そのDB内でコンテンツを検索する必要がある場合は、何らかのクエリビルダーが必要です。 市場にはいくつかあります。私はAspose QueryとEasyQueryを覚えていますが、 "query builder asp.net"のようなものがあれば、それ以上見つかるでしょう。

関連する問題