谷歌自定义搜索排序日期范围标准不起作用

Posted

技术标签:

【中文标题】谷歌自定义搜索排序日期范围标准不起作用【英文标题】:Google custom search sort date range criteria not working 【发布时间】:2017-01-08 22:13:23 【问题描述】:

在 Google 自定义搜索中,我们在排序参数中传递日期范围标准

http://www.example.com/search?cx=xxxxxxxxxxxxxxxxxxxxx:yyyyyy_yyyyy&q=google&sort=date:r:20160304:20160505.
https://developers.google.com/custom-search/docs/structured_search#restrict_to_range

但我们没有得到符合日期范围标准的预期结果。 调试代码后,即使我们将排序参数传递给我们的搜索页面 URL,也没有将其传递给自定义搜索 URL。

Google 自定义搜索网址:

https://cse.google.com/cse?q=google&r=m&cx=xxxxxxxxxxxxxxxxxxxxx:yyyyyy_yyyyy&fexp=20606&client=google-coop&hl=en&type=0&oe=UTF-8&ie=UTF-8&format=p4&ad=p4&nocache=1081472127237880&num=0&output=uds_ads_only&source=gcsc&v=3&allwcallad=1&adext=as1%2Csr1%2Cctc1&bsl=10&u_his=50&u_tz=330&dt=1472127237882&u_w=1366&u_h=768&biw=1349&bih=233&psw=1349&psh=233&frm=0&uio=uv3st16sd13sv13lhsl1sr1cc1-&jsv=14100&rurl=http%3A%2F%2Fwww.example.com%2Fsearch%3Fcx%xxxxxxxxxxxxxxxxxxxx_yyyyy%26q%3Dgoogle%26sort%3Ddate%253Ar%253A20160304%253A20160505

但是当我们尝试使用排序日期范围参数访问直接 API 时,我们得到了预期的结果。

https://www.googleapis.com/customsearch/v1?q=google&cx=xxxxxxxxxxxxxxxxxxxxx:yyyyyy_yyyyy&sort=date%3Ar%3A20160701%3A20160724&key=<APIKEY>

我们正在使用 Google 自定义搜索 V2 实现。

谢谢, 阿努普

【问题讨论】:

分享您的 javascript 代码(用于生成 Google 自定义搜索 URL) 会很有帮助,这样社区就可以仔细寻找可能的修复方法。 【参考方案1】:

您的 url 参数编码似乎有问题。它可能是双重编码的。

【讨论】:

【参考方案2】:

我认为在代码中你为查询参数做任何转义字符尝试删除该检查

【讨论】:

【参考方案3】:

尝试转义所有作为查询参数传递的特殊字符。例如

>  - &lt;
<  - &gt;
&  - &amp;
'  - &#039;
'' - &#034;

这些是这样编码的。你可以通过两种方式逃避它

    明确指定 escapeXml = "**false**" 作为默认值将是 true。 如果您正在使用,请在 JSP 中添加 url &lt;%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %&gt; 然后通过调用逃脱 $fn:escapeXml(myString)

【讨论】:

@Anup 你也可以试试这个选项 @Anirudh - JFYI 我使用了 GCE 的 JS 实现。 @AnupKhandelwal - 我知道你已经使用了 &lt;gcse:search&gt; 它是命名空间 gcse 中的一个普通搜索标签。这些基本上是 javascript 命名空间。我确实认为您可以将 escapeXml 与要转义特殊字符的标签一起使用。【参考方案4】:

确保您使用正确的格式。

https://www.googleapis.com/customsearch/v1?key=INSERT_YOUR_API_KEY&cx=017576662512468239146:omuauf_lfve&q=searchterm&sort=document-weight

谢谢!

【讨论】:

以上是关于谷歌自定义搜索排序日期范围标准不起作用的主要内容,如果未能解决你的问题,请参考以下文章

javascript 谷歌自定义搜索

在 iOS 应用上使用谷歌自定义搜索 json api

谷歌自定义搜索引擎的链接列表

在我的 html 网站的谷歌自定义搜索引擎的文本框中添加占位符

如何在 Google 搜索结果页面中嵌入 iframe

如何在目标 c 中使用 Google 自定义搜索进行图像搜索