Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.NET中创建搜索功能_Asp.net_Html - Fatal编程技术网

在ASP.NET中创建搜索功能

在ASP.NET中创建搜索功能,asp.net,html,Asp.net,Html,我有一个网站,内容(HTML)是使用ASP.NETC从SQLServer数据库生成的 现在我想在网站上添加一个搜索功能,以便用户可以搜索内容。它会弹出一个结果页面,显示结果 执行此操作的最佳方法是什么?Microsoft Index Server: 或者 谷歌自定义搜索:两个最佳解决方案: 谷歌自定义搜索(GCS) SQL Server(手动) GCS: 在这里,你将完全依赖谷歌。如果他们在60天内为你的网页编制索引,那么祝你好运。你找不到没有存储的信息,像网页一样公开。因此,登录内的任何内

我有一个网站,内容(HTML)是使用ASP.NETC从SQLServer数据库生成的

现在我想在网站上添加一个搜索功能,以便用户可以搜索内容。它会弹出一个结果页面,显示结果

执行此操作的最佳方法是什么?

Microsoft Index Server:

或者

谷歌自定义搜索:

两个最佳解决方案:

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

在这里,你将完全依赖谷歌。如果他们在60天内为你的网页编制索引,那么祝你好运。你找不到没有存储的信息,像网页一样公开。因此,登录内的任何内容,请忘记它

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

自定义SQL Server:

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

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

这里的好处是你拥有完全的控制权,你可以访问一切

编辑:

当然还有很多其他的解决方案。我还建议研究Lucene,或在Lucene之上的一些实现,例如。然而,所有的搜索功能通常都是非常困难和耗时的,下面是我的前两个建议

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

编辑2:


今天我只建议一个解决方案:ElasticSearch。这是一个很好的解决方案;容易相处;在所有平台上工作;基于一个很好的REST api和JSON,性能非常好。

知道您更喜欢搜索功能的方向有点困难,也不知道您更喜欢/并且使用起来舒服的语言是什么

那么,简单点怎么样?和使用托管搜索

这个网站在这里,免费,将索引多达1000,你也可以得到各种各样的报告。看起来你只需要在你的网站上添加一些简单的HTML就可以了

您还可以根据需要重新编制索引,还可以为您设置一个时间表。无需等待谷歌


该站点是

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

您可以使用执行所有这些查询的简单搜索,也可以使用高级搜索,在高级搜索中,您可以根据要执行的查询提供复选框以优化搜索

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

使用Lucene(apachelucene项目开发了开源搜索软件)

  • 使用谷歌搜索


    *如果可能的话,您可以使用Sharepoint进行网站开发,并且每个网站都有搜索功能。

    在这里您可以找到最佳教程


    如果您正在使用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;
        }
    
    
    $(文档).ready(函数(){
    SearchText();
    });
    函数SearchText(){
    $(“.autosuggest”).autocomplete({
    来源:功能(请求、响应){
    $.ajax({
    类型:“POST”,
    contentType:“应用程序/json;字符集=utf-8”,
    url:“Home.aspx/GetAutoCompleteData”,
    数据:“{'username':'”+document.getElementById('txtSearch').value+“}”,
    数据类型:“json”,
    成功:功能(数据){
    答复(数据d);
    },
    错误:函数(结果){
    警报(“错误”);
    }
    });
    }
    });
    }
    $(“.autosuggest”).autocomplete({
    来源:功能(请求、响应){
    $.ajax({
    类型:“POST”,
    contentType:“应用程序/json;字符集=utf-8”,
    url:“Home.aspx/GetAutoCompleteData”,
    数据:“{'username':'”+document.getElementById('txtSearch').value+“}”,
    数据类型:“json”,
    成功:功能(数据){
    答复(数据d);
    },
    错误:函数(结果){
    警报(“错误”);
    }
    });
    }
    });
    /// 
    ///自动搜索。
    /// 
    /// 
    /// 
    公共列表GetAutoComplete(字符串用户名)
    {
    List lstStr=新列表();
    sqlCon=新的SqlConnection(strCon);
    sqlCmd=new SqlCommand(“从上传的视频中选择不同的OldFileName,其中OldFileName类似“%”++@SearchText++“%”,sqlCon);
    sqlCon.Open();
    sqlCmd.Parameters.AddWithValue(“@SearchText”,用户名);
    SqlDataReader=null;
    reader=sqlCmd.ExecuteReader();
    while(reader.Read())
    {
    添加(读卡器[“OldFileName”].ToString());
    }
    返回lstStr;
    }
    

    我已经创建了一个自动完成框。这里最重要的是我们可以使用自己的代码

    如果您的内容存储在SQL数据库中,您需要在该数据库中搜索它,那么您需要某种查询生成器。
    市场上有一些。我记得Aspose Query和EasyQuery,但是如果你在google上搜索“Query builder asp.net”或类似的内容,你会发现更多信息。

    如果网站是以I