1

我正在尝试将 Google 站点搜索合并到我的 .NET MVC 项目中,但我对文档感到非常困惑。

google XML API参考绝对没有提及任何可用于搜索的代码或类。结果,我正在检索 XML 并手动解析它。

但是,我也遇到过Google API,我不确定这些是相互关联的还是两个不同的东西,也很困惑为什么 developer.google.com 没有提及 code.google.com 的存在

所以我的问题是为了结束混乱。

a) 尽管在 XML API 的开发人员部分没有相关信息,但 Google 站点搜索(付费服务)是否可以与 Google API 一起使用?请注意,您不需要 API 密钥即可使用 Google 站点搜索。

b) API 是否是一个完全独立的实体,需要 API 密钥,因此不建议与 Google 站点搜索一起用于商业用途,因为 API 限制在普通付费服务中不存在?

c) 在 .NET MVC 4 应用程序中实现 Google 站点搜索(据我所知是 Google 自定义搜索的付费版本)时,最佳实践是什么?获取 XML 并手动解析它还是使用 API 将请求消耗为反序列化对象?

目前我正在做前者,但我一直想知道是否可以通过将我的解决方案与 API 相结合来生成更好、更可测试的代码。

我一直在网上找到关于这方面的混合资源,但我不确定该走哪条路。

谢谢

4

2 回答 2

1

我对 .NET 最佳实践无能为力,但可以谈谈 API。自定义搜索有 2 种不同的 API(除了 js 小部件):

较旧的 XML API:https ://developers.google.com/custom-search/docs/xml_results 较旧的 JSON API:https ://developers.google.com/custom-search/json-api/v1/overview

我相信你提到的图书馆是为后者准备的。

付费站点搜索版本的 API 密钥可以在控制面板 google.com/cse 中找到。

于 2013-10-29T18:36:58.817 回答
0

使用以下步骤在 ASP.Net MVC 中实现 Google 自定义搜索引擎

添加控制器

public class SearchController : Controller  
{  
    public ActionResult Search(string SearchString)  
    {  
        ViewBag.SearchString = SearchString;  
        ViewBag.Title = "Search";  
        return View("SearchResult");  
    }  
}

添加表单以获取用户输入

<div class="searchControl">  
 @using (Html.BeginForm("Search", "Search", FormMethod.Get))   
 {  
  <div class="input-group">  
    <input type="text" name="SearchString" class="form-control" placeholder="type something and hit enter">  
   <span class="input-group-btn">  
     <input class="btn" type="submit" value="Search!"/>  
   </span>  
  </div><!-- /input-group -->  
 }  
 </div>  

添加搜索结果页面

@{  
 Layout = "~/Views/Shared/_Layout.cshtml";  
 }  
  <div class="container"">  
    <div class="row">   
      <div class="col-md-12">   
        <script>  
          //put here your Google custom search engine script
        </script>   
      <gcse:search>  
      </gcse:search>   
    </div>   
  </div>  
</div>

是在 MVC 中实现 Google 自定义搜索引擎的完整分步文章

于 2016-01-21T20:03:47.470 回答