我有一個網站,該內容(HTML)是使用ASP.NET C#從SQL Server數據庫生成的。在ASP.NET中創建搜索功能
現在我想在網站上添加搜索功能,以便用戶可以搜索內容。它會帶出一個結果頁面。
這樣做的最好方法是什麼?
我有一個網站,該內容(HTML)是使用ASP.NET C#從SQL Server數據庫生成的。在ASP.NET中創建搜索功能
現在我想在網站上添加搜索功能,以便用戶可以搜索內容。它會帶出一個結果頁面。
這樣做的最好方法是什麼?
Microsoft索引服務器:http://www.c-sharpcorner.com/UploadFile/sushil%20saini/UsingIndexServer11262005045132AM/UsingIndexServer.aspx
或...
谷歌自定義搜索:http://www.google.com/coop/cse/
如果網站在共享服務器上的ISP上託管,那麼該怎麼辦?最好的選擇是什麼? – TeaDrinkingGeek
在這種情況下,使用Google自定義搜索是最佳選擇。 –
我很驚訝你沒有建議使用ASP.NET編寫搜索頁面? – TeaDrinkingGeek
2.最佳解決方案:
GCS:
在這裏,您將完全依賴於谷歌。如果他們在60天內爲您的網頁編制索引,那麼祝你好運。你不會找到沒有存儲的信息,像公共網頁一樣。因此,登錄內的任何內容都會忘記它。
您還將依靠搜索引擎優化。如果您不優化頁面標題,元描述等,那麼搜索將不會有太大用處。
自定義的SQL Server:
如果你把你的數據字段全文索引,您可以搜索關鍵字。這是一個體面的解決方案,但要記住索引(否則它會很慢)。
我會搜索「SQL Server全文搜索」以獲得有關此解決方案的幫助。
這裏的好處是你有完全的控制權,你可以訪問一切。
編輯:
當然還有許多其他的解決方案。我也會建議看看Lucene,或者一些在Lucene之上的實現,比如Solr。然而,所有的搜索功能通常都非常困難且耗時,從今以後我的前兩個建議。
在我工作的公司,我們以前使用FAST,並且今天使用Apptus。
編輯2:
今天我想只有一個解決方案建議:ElasticSearch。這是一個很好的解決方案;易於使用;適用於所有平臺;基於一個很好的REST api和JSON,並且表現非常好。
知道您希望繼續使用搜索功能的哪個方向,並且不知道您偏好哪種語言/並且使用舒適,這有點困難。
那麼,簡單的事情呢?並使用託管搜索?
這個網站在這裏免費索引到1000,你也可以得到各種各樣的報告。看起來你只需要添加一些簡單的HTML到你的網站,以使其工作。
您也可以根據需要重新編制索引,並且還可以爲您制定計劃。無需等待谷歌..
該網站是Site Level
感謝您的替代建議搜索。我會冒險去看看。 – TeaDrinkingGeek
您的網頁是從SQL數據庫生成的。我認爲它可以安全地假設相關數據也位於SQL數據庫中,而不是asp模板或C#代碼。要搜索該數據,您可以根據contains("search term")
函數向數據庫寫入多個查詢。
您可以執行所有這些查詢的簡單搜索,也可以提供高級搜索,您可以根據執行哪些查詢來提供複選框來優化搜索。
這比對生成的內容imo進行原始搜索更有意義。
這種方法雖然在技術上可行,但往往會產生較差的最終結果,因爲人們並不認爲具體條件。他們輸入一個搜索詞,他們期望變體等被考慮。你得到的是一種人們不斷在尋求的搜索。這些投訴的運行方式類似於「我搜索'徒步旅行'」,但您不會在其中顯示任何「徒步旅行」頁面 - 所有這些包含的小變體都不會觸及。最後,您最好使用全文搜索或自定義谷歌搜索,正如其他評論員所說。 – Michael
使用Lucene(Apache Lucene項目開發開源搜索軟件)。
使用谷歌搜索
*如果可能的話,你可以使用的Sharepoint爲網站開發和搜索已經在那裏每個網站。
如果您使用的是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;
}
我創建了一個自動完成框。這裏主要的是我們可以使用我們自己的代碼。 。 。
如果您的內容存儲在SQL數據庫中,並且您需要在該數據庫中搜索它 - 那麼您需要某種查詢構建器。市場上有少數幾種。我可以記住Aspose Query和EasyQuery,但是如果google查詢「query builder asp.net」或類似的東西,你會發現更多。
其他解決方案? – TeaDrinkingGeek
你可以使用自定義谷歌搜索,現有的商業模塊,使用SQL索引,以達到自定義索引。 – Aristos