我有一个网站,内容(HTML)是使用ASP.NET C#从SQL Server数据库生成的。
现在我想在网站上添加搜索功能,以便用户可以搜索内容。它会显示一个包含结果的结果页面。
这样做的最佳方式是什么?
答案 0 :(得分:5)
2个最佳解决方案:
<强> GCS:强>
在这里,您将完全依赖Google。如果他们在60天内为您的网页编制索引,那么祝您好运。你不会找到没有存储的信息,就像网页一样公开。因此,登录中的任何内容都会忘记它。
您还将依赖搜索引擎优化。如果您不优化页面标题,元描述等,搜索将没有多大用处。
自定义SQL Server:
如果您在数据字段上添加了全文索引,则可以搜索关键字。这是一个不错的解决方案,但请记住索引(否则会很慢)。
我会搜索“SQL Server全文搜索”以获取有关此解决方案的帮助。
这里的好处是您可以完全控制并且可以访问所有内容。
修改强>
当然还有许多其他解决方案。我还建议调查Lucene,或者在Lucene之上的一些实现,例如Solr。然而,所有搜索功能通常都非常困难且耗时,因此我的前两个建议。
在我工作的公司,我们之前使用过FAST,今天就使用Apptus。
编辑2:
今天我只建议一个解决方案:ElasticSearch。这是一个很好的解决方案;易于使用;适用于所有平台;基于一个很好的REST api和JSON,并且表现非常好。
答案 1 :(得分:2)
Microsoft Index Server:http://www.c-sharpcorner.com/UploadFile/sushil%20saini/UsingIndexServer11262005045132AM/UsingIndexServer.aspx
或......
Google自定义搜索:http://www.google.com/coop/cse/
答案 2 :(得分:1)
您的网页是从SQL数据库生成的。我认为可以安全地假设相关数据也在于SQL DB而不是asp模板或C#代码。要搜索该数据,您可以根据contains("search term")
函数向数据库写入多个查询。
您可以使用简单的搜索来执行所有这些查询,也可以使用高级搜索,您可以根据要执行的查询来提供复选框以优化搜索。
这比对生成的内容进行原始搜索更有意义,imo。
答案 3 :(得分:1)
使用Lucene(Apache Lucene项目开发开源搜索软件)。
答案 4 :(得分: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 '%'+@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;
}
我已经创建了一个自动完成框。这里的主要内容是我们可以使用自己的代码。 。
答案 5 :(得分:0)
知道您喜欢哪种方向的搜索功能,而不知道您喜欢哪种语言/并且使用起来很舒服,这有点困难..
那么,简单的事情怎么样?并使用托管搜索?
此网站免费提供,最高可达1000个,您也可以使用它进行各种报告。看起来您只需在网站中添加一些简单的HTML即可使其全部正常运行。
您还可以按需重新编制索引,并为您设置计划。无需等待谷歌..
该网站为Site Level
答案 6 :(得分:0)
使用Google搜索
*如果可能,您可以使用 Sharepoint 进行网站开发,每个网站都有搜索功能。
答案 7 :(得分:0)
在这里,您可以找到最好的教程。
http://www.codeproject.com/Articles/42454/Implement-Search-Functionality-into-your-ASP-NET-M
答案 8 :(得分:0)
如果您的内容存储在SQL数据库中,并且您需要在该数据库中搜索它 - 那么您需要某种查询构建器。 市场上有一些。我可以记住Aspose Query和EasyQuery,但如果google用于“查询构建器asp.net”或类似的东西,你会发现更多。