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