私はウェブサイトを持っています、そのコンテンツ(HTML)はSQLServerデータベースからASP.NETC#を使用して生成されます。
次に、ユーザーがコンテンツを検索できるように、Webサイトに検索機能を追加したいと思います。結果を含む結果ページが表示されます。
これを行うための最良の方法は何ですか?
2 つの最適なソリューション:
GCS:
ここでは、完全に Google に依存します。彼らがあなたのウェブページを 60 日でインデックスに登録できれば、幸運を祈ります。Web ページのように公開されていない情報は見つかりません。したがって、ログイン内のコンテンツは忘れてください。
また、検索エンジン最適化にも依存します。ページのタイトルやメタディスクリプションなどを最適化しないと、検索はあまり役に立ちません。
カスタム SQL サーバー:
データ フィールドに全文索引を配置すると、キーワードを検索できます。これはまともな解決策ですが、インデックスを覚えておいてください (そうしないと非常に遅くなります)。
このソリューションのヘルプについては、「SQL Server 全文検索」を検索します。
ここでの利点は、完全に制御でき、すべてにアクセスできることです。
編集:
もちろん、他の多くのソリューションがあります。また、 Lucene 、またはSolrなどの Lucene 上のいくつかの実装を調べることをお勧めします。ただし、すべての検索機能は通常非常に難しく、時間がかかるため、最初の 2 つの提案を以下に示します。
私が働いている会社では、以前は FAST を使用していましたが、現在は Apptus を使用しています。
編集2:
今日、私がアドバイスするソリューションは 1 つだけです。ElasticSearch です。これは優れたソリューションです。扱いやすい。すべてのプラットフォームで動作します。優れた REST API と JSON に基づいており、非常にうまく機能しています。
Microsoft インデックス サーバー: http://www.c-sharpcorner.com/UploadFile/sushil%20saini/UsingIndexServer11262005045132AM/UsingIndexServer.aspx
また ...
Google カスタム検索: http://www.google.com/coop/cse/
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 '%'+@SearchText+'%'", sqlCon);
sqlCon.Open();
sqlCmd.Parameters.AddWithValue("@SearchText",userName);
SqlDataReader reader=null;
reader = sqlCmd.ExecuteReader();
while(reader.Read())
{
lstStr.Add(reader["OldFileName"].ToString());
}
return lstStr;
}
オートコンプリートボックスを作成しました。ここでの主なことは、独自のコードを使用できることです。. .
ページは SQL データベースから生成されます。関連するデータは、asp テンプレートや C# コードではなく、SQL DB にもあると想定しても安全だと思います。そのデータを検索するには、関数に基づいてデータベースに複数のクエリを書き込むことができますcontains("search term")
。
これらすべてのクエリを実行する単純な検索を行うことも、検索を絞り込むために実行するクエリに基づいてチェックボックスを提供できる高度な検索を行うこともできます。
これは、生成されたコンテンツに対して生の検索を行うよりも理にかなっています。
Use Lucene (The Apache Lucene project develops open-source search software).
検索機能でどの方向に進むのが好きかを知るのは少し難しいですが、どの言語が好きで、どの言語を使いやすいかを知ることはできません..
では、シンプルなものはいかがですか?ホストされた検索を使用しますか?
このサイトは無料で、最大 1000 のインデックスを作成し、あらゆる種類のレポートも取得できます。すべてを機能させるには、サイトに単純な HTML を追加するだけでよいようです。
また、必要に応じてインデックスを再作成し、それを行うスケジュールを設定することもできます。Google を待つ必要はありません。
サイトはサイトレベルです
ここで最高のチュートリアルを見つけることができます。
http://www.codeproject.com/Articles/42454/Implement-Search-Functionality-into-your-ASP-NET-M
コンテンツが SQL データベースに保存されていて、その DB 内で検索する必要がある場合は、何らかのクエリ ビルダーが必要です。市場にはいくつかあります。私は Aspose Query と EasyQuery を思い出すことができますが、「クエリ ビルダー asp.net」または同様のものをグーグルで検索すると、さらに多くの情報が見つかります。
Google 検索を使用する
*可能であれば、Sharepointを Web サイトの開発に使用できます。検索は、各 Web サイトに既に存在します。