我是否知道在ASP .net网络应用中实施网站搜索的最佳做法是什么。用户应该能够输入一些关键字并获得与关键字相关的链接。我刚刚开始研究。如果你提出你的想法会很棒。
答案 0 :(得分:2)
如果它是一个小型公共网站,您最好使用Google作为其Custom Search engine计划的搜索引擎。
显然,这不是Google无法看到的内部网站的选项。如果您的内容在数据库中,我听说过有关Lucine的好消息。如果您在该平台上,SQL Server 2008的全文搜索功能也可以很好地工作。我认为这就是SO用于搜索的内容。或者杰夫曾经一度玩过它并且有很多话要说。不知道他们是否还在使用它。
答案 1 :(得分:1)
这完全取决于数据的存储位置:数据库或静态页面。
对于前者,我会使用Lucene.NET(查看SubText博客,其中最新版本具有良好的实现)。对于后者,我使用dtSearch来抓取网站以创建一个可以搜索的索引。
答案 2 :(得分:0)
如果您使用数据库存储内容,则可以使用包含大量表的SQL Server全文搜索语言功能,然后您可以对其进行搜索。我们之前习惯了这种方法。
有关详情,请参阅:http://www.simple-talk.com/sql/learn-sql-server/sql-server-full-text-search-language-features/
答案 3 :(得分:0)
这是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>
...