[我可以知道在ASP .net Web应用程序中实施站点搜索的最佳实践是什么。用户应该能够输入一些关键字并获得与该关键字的相关链接。我刚刚开始研究。如果您提出自己的想法,那就太好了。
这全取决于您的数据存储位置:数据库页面还是静态页面。
对于前者,我将使用Lucene.NET(请查看SubText博客,该博客的最新版本具有良好的实现)。对于后者,我将使用dtSearch来爬网该站点以创建一个可以在其中搜索的索引。
[如果它是一个小型公共网站,那么最好通过其Custom Search engine程序将Google用作搜索引擎。
很明显,这是Google无法看到的内部站点的选项。如果您的内容在数据库中,那么我听说过Lucine的好处。如果您在该平台上,SQL Server 2008的全文本搜索功能也可以很好地工作。我认为这就是SO用于其搜索的内容。或Jeff在某一点上玩了,有话要说。不知道他们是否还在使用它。
如果使用数据库存储内容,则可以使用SQL Server全文搜索语言功能,该功能包含一堆表,然后可以对此进行搜索。我们以前曾经使用过这种方法。
查看更多详细信息:http://www.simple-talk.com/sql/learn-sql-server/sql-server-full-text-search-language-features/
这里是C#代码
protected void OnPaging(object sender, GridViewPageEventArgs e)
{
GridView2.PageIndex = e.NewPageIndex;
this.Searchmyform();
}
protected void Search(object sender, EventArgs e)
{
this.Searchmyform();
}
private void Searchmyform()
{
using (SqlCommand cmd = new SqlCommand())
{
string sql = "SELECT * FROM [test].[dbo].[myform]";
if (!string.IsNullOrEmpty(txtSearch.Text.Trim()))
{
sql += " where name like '" + txtSearch.Text + "%' or contact like '" + txtSearch.Text + "%'" +
" or email like '" + txtSearch.Text + "%' ";
}
cmd.CommandText = sql;
cmd.Connection = conn;
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
sda.Fill(dt);
GridView2.DataSource = dt;
GridView2.DataBind();
}
}
}
aspx代码是这样的>
<div class="topnav card-body">
<div class="search-container-lg float-right">
<asp:TextBox ID="txtSearch" runat="server"
OnTextChanged="Search"
AutoPostBack="true"
placeholder="Search.."
CssClass="">
</asp:TextBox>
...