Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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_Asp.net Mvc_Asp.net Mvc 3_Search - Fatal编程技术网

Asp.net 搜索整个网站,而不是一组产品

Asp.net 搜索整个网站,而不是一组产品,asp.net,asp.net-mvc,asp.net-mvc-3,search,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Search,我有一个搜索控制器,它获取Searchid和keywordSearch来显示搜索结果。例如,用户可以在手机类别中搜索iPhone。我正在尝试在所有产品组(Searchid)中搜索任何关键字(关键字搜索),我需要帮助 HTML代码: <div class="top_search_form"> @using (Html.BeginForm("Search", "Home", FormMethod.Get, new { @class = "search_form clearfix", @

我有一个搜索控制器,它获取Searchid和keywordSearch来显示搜索结果。例如,用户可以在手机类别中搜索iPhone。我正在尝试在所有产品组(Searchid)中搜索任何关键字(关键字搜索),我需要帮助

HTML代码:

<div class="top_search_form">

@using (Html.BeginForm("Search", "Home", FormMethod.Get, new { @class = "search_form clearfix", @id = "frm_topsearch" }))
{
    <div id="search_box">
        <select name='Searchid' style="margin-left:1px;">
            @foreach (var item1 in repsearch.GetGroup())
            {
                <option value='@item1.Group_ID'>@item1.Group_Name</option>
            }

        </select>


        <input type="text" placeholder="search" name='keywordSearch'>

        <input type="submit" class="fa fa-search" style="margin-right: 1px;width:38px !important;background-color: #CC456B !important;height: 34px !important;" name="name" value="search" />


    </div>

    <div id="search_result_box">

    </div><!-- end search_result_box -->
}

我认为索引(lucene或solr等)将是全文搜索的更好方法。这些技术是扁平的,因此搜索更容易、更快。即使您构建了一个循环遍历所有列以查找关键字匹配的db查询,它也会非常慢。我希望帮助你推荐一个学习lucene或solr的资源?
[HttpGet]
    public ActionResult Search(int Searchid, string keywordSearch)
    {
        var qid = db.Tbl_Group.Where(a => a.Group_ID == Searchid).FirstOrDefault();

        if (qid == null)
        {
            return RedirectToAction("Index");
        }
        else
        {
            if (keywordSearch == "" || keywordSearch == null)
            {
                var q = db.Tbl_Product.Where(a => a.Product_Groupid == Searchid).ToList();

                if (q == null)
                {
                    ViewBag.State = "Error";
                    ViewBag.Key = keywordSearch;
                    ViewBag.Groupid = Searchid;
                    return View();
                }
                else
                {

                    ViewBag.State = "Ok";
                    ViewBag.Key = keywordSearch;
                    ViewBag.Groupid = Searchid;
                    return View(q);
                }
            }
            else
            {
                var search = (from a in db.Tbl_Product where a.Product_Groupid == Searchid && a.Product_Name.Contains(keywordSearch) select a).ToList();

                if (search == null)
                {
                    ViewBag.State = "Error";
                    ViewBag.Key = keywordSearch;
                    ViewBag.Groupid = Searchid;
                    return View();

                }
                else
                {
                    ViewBag.State = "Error";
                    ViewBag.Key = keywordSearch;
                    ViewBag.Groupid = Searchid;
                    return View(search);
                }
            }
        }

    }