11

我有一个网站,该内容 (HTML) 是使用 ASP.NET C# 从 SQL Server 数据库生成的。

现在我想在网站上添加一个搜索功能,以便用户可以搜索内容。它将打开一个带有结果的结果页面。

做这个的最好方式是什么?

4

9 回答 9

5

2个最佳解决方案:

  • 谷歌自定义搜索 (GCS)
  • SQL Server(手动)

地面站:

在这里,您将完全依赖 Google。如果他们在 60 天内将您的网页编入索引,那么祝您好运。您不会找到未存储的信息,就像网页一样公开。因此,登录内的任何内容,都算了。

您还将依赖搜索引擎优化。如果你不优化你的页面标题、元描述等,搜索将没有多大用处。

自定义 SQL 服务器:

如果您在数据字段上放置全文索引,则可以搜索关键字。这是一个不错的解决方案,但请记住索引(否则会很慢)。

我会搜索“SQL Server 全文搜索”以获取有关此解决方案的帮助。

这里的好处是您可以完全控制并且可以访问所有内容。

编辑:

当然还有很多其他的解决方案。我还建议研究Lucene或基于 Lucene 的一些实现,例如Solr。然而,所有搜索功能通常都非常困难且耗时,因此我的前两个建议是。

在我工作的公司中,我们以前使用 FAST,现在使用 Apptus。

编辑2:

今天我只建议一种解决方案:ElasticSearch。这是一个很好的解决方案;易于使用;适用于所有平台;基于一个不错的 REST api 和 JSON,并且性能非常好。

于 2012-10-26T10:47:50.383 回答
2

微软索引服务器:http ://www.c-sharpcorner.com/UploadFile/sushil%20saini/UsingIndexServer11262005045132AM/UsingIndexServer.aspx

或者 ...

谷歌自定义搜索:http ://www.google.com/coop/cse/

于 2012-10-23T21:54:33.323 回答
1

If you are using the SOL DB Try Enable your own code for Search box in it. For example i'm creating a Video Portal, i'm searching videos by my own Search box by using the following Code,

    <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;
    }

I've Created a auto Complete box. The Main thing here is we can use our own code. . .

于 2012-11-02T08:40:02.877 回答
1

使用 Lucene(Apache Lucene 项目开发开源搜索软件)。

  1. http://lucene.apache.org/

  2. http://ifdefined.com/blog/post/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx

于 2012-10-31T22:49:12.613 回答
1

您的页面是从 SQL 数据库生成的。我认为可以安全地假设相关数据也位于 SQL DB 中,而不是 asp 模板或 C# 代码中。要搜索该数据,您可以根据contains("search term")函数向数据库写入多个查询。

您可以有一个简单的搜索来执行所有这些查询,也可以有一个高级搜索,您可以在其中提供基于要执行的查询以优化搜索的复选框。

这比对生成的内容进行原始搜索更有意义,imo。

于 2012-10-28T17:03:04.797 回答
0

使用谷歌搜索

*如果可能,您可以使用Sharepoint进行网站开发,并且每个网站都已提供 Search。

于 2012-11-02T06:54:11.473 回答
0

知道您更喜欢使用搜索功能的哪个方向,并且不知道您喜欢/并且习惯使用的语言是什么有点困难。

那么,简单的事情怎么样?并使用托管搜索?

此处的此站点免费,最多可索引 1000 个,并且您也可以使用它获得各种报告。看起来您只需在您的网站中添加一些简单的 HTML 即可使其正常运行。

您还可以按需重新编制索引,还可以设置一个时间表来为您做这件事。无需等待谷歌..

该站点是站点级别

于 2012-10-26T18:07:10.633 回答
0

在这里你可以找到一个最好的教程。

http://www.codeproject.com/Articles/42454/Implement-Search-Functionality-into-your-ASP-NET-M

于 2012-11-02T07:39:01.703 回答
0

如果您的内容存储在 SQL 数据库中并且您需要在该数据库中搜索它 - 那么您需要某种查询构建器。市场上有一些。我记得 Aspose Query 和 EasyQuery,但如果谷歌搜索“query builder asp.net”或类似的东西,你会发现更多。

于 2013-06-26T12:33:50.287 回答