在asp.net网站上搜索网站

时间:2010-06-09 18:13:12

标签: .net asp.net search

我是否知道在ASP .net网络应用中实施网站搜索的最佳做法是什么。用户应该能够输入一些关键字并获得与关键字相关的链接。我刚刚开始研究。如果你提出你的想法会很棒。

4 个答案:

答案 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>
...