我正在尝试将Google站点搜索合并到我的.NET MVC项目中,我对文档感到非常困惑。
谷歌XML API参考绝对没有引用任何可用于搜索的代码或类。因此,我正在检索XML并手动解析它。
但是,我也遇到了Google API,我不确定它们是相互关联的还是两个不同的东西,并且还困惑为什么 developers.google.com 没有提到 code.google.com 的存在
所以我在这里提出问题是为了结束混乱。
a) 谷歌网站搜索(付费服务)可以与谷歌API一起使用,尽管在XML API的开发者部分没有关于它的信息?请注意,您不需要API密钥即可使用Google网站搜索。
b) API 是否是一个完全独立的实体,需要 API 密钥,因此不建议与 Google 网站搜索一起用于商业用途,因为普通付费服务不存在 API 限制?
c) 在 .NET MVC 4 应用程序中实现 Google 站点搜索(据我所知是 Google 自定义搜索的付费版本)时,最佳实践是什么?获取 XML 并手动解析它,还是使用 API 将请求消耗到反序列化对象中?
目前我正在做前者,但我一直想知道我是否可以通过将我的解决方案与 API 相结合来生成更好、更可测试的代码。
我一直在网上找到有关此的混合资源,但我不确定该走哪条路。
谢谢
我无法帮助了解 .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 中找到。
使用以下步骤在 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自定义搜索引擎的完整分步文章