【问题标题】:Google Custom Search API in C#: PagingC# 中的 Google 自定义搜索 API:分页
【发布时间】:2016-11-21 10:23:17
【问题描述】:

这是我的查询代码。

String query = 'abc';

CustomsearchService customSearchService = new CustomsearchService(new Google.Apis.Services.BaseClientService.Initializer() { ApiKey = apiKey });
   Google.Apis.Customsearch.v1.CseResource.ListRequest listRequest = customSearchService.Cse.List(query);
   listRequest.Cx = searchEngineId;
   search_results = listRequest.Execute();

如何在此处添加过滤等选项? 我搜索了整个互联网和 github,但找不到任何示例代码或适当的文档。

【问题讨论】:

    标签: c# asp.net .net google-custom-search


    【解决方案1】:

    我像这样更改了代码,它可以工作。

        CustomsearchService customSearchService = new CustomsearchService(new Google.Apis.Services.BaseClientService.Initializer() { ApiKey = apiKey });
        Google.Apis.Customsearch.v1.CseResource.ListRequest listRequest = customSearchService.Cse.List(query);
        listRequest.Cx = searchEngineId;
        listRequest.Start = 20;
        listRequest.Num = 5;
        search_results = listRequest.Execute();
    

    但如果 listRequest.Start = 100 或 listRequest.Num = 12 则会产生错误

    【讨论】:

    • Num = 12 将不起作用,因为存在限制 - 每个查询最多 10 个结果。开始参数将取决于查询 - 如果结果计数小于 100,可能会发生它不起作用。请检查计数属性作为响应。
    【解决方案2】:

    如果问题类似于标题中关于分页的问题,则 CseResource.ListRequest listRequest 具有属性 Start - 您可以在此处指定要从哪个结果获取数据(请记住,每个查询仅返回 10 个结果)。

    所以第一次在没有设置 Start 的情况下执行它,每次执行的子调用都应该将 Start 增加 10。

    如果附加过滤器 - listRequest 还包含诸如 FileType、DateRestrict 等属性。

    编辑: 我正在使用这个页面: https://developers.google.com/custom-search/json-api/v1/reference/cse/list

    【讨论】:

    猜你喜欢
    • 2013-11-16
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    相关资源
    最近更新 更多