1

我创建了与 Google 自定义搜索 API 的集成,查询看起来相当简单,但返回了意想不到的结果。我的查询基于本指南:https ://developers.google.com/custom-search/docs/structured_search

在我的网站上,我创建了页面地图,其中包含我的 pagetypeid 信息(我想要在其中过滤)和页面排名(我想要排序)。这些页面由谷歌索引,当我尝试做一个简单的查询时,json 对象包含正确的值。即:当我在浏览器中测试时:

https://www.googleapis.com/customsearch/v1?key=[myKey]&cx=[myCx]&q=*&alt=json

请注意,我正在搜索 q=* (所有内容)。

我收到一个带有页面映射对象的项目列表,如下所示:

“页面地图”:{

"page": [
 {
  "pagetypeid": "12",
 }
],
"pageranking": [
 {
  "score": "5"
 }
],...}

我有 pagetypeid 的对象:12,3 和一系列其他数字......

当我尝试添加过滤或排序时,奇怪的部分就出现了。

如果我将上面的查询更改为:

https://www.googleapis.com/customsearch/v1?key=[myKey]&cx=[myCx]&q= *+more:pagemap:page-pagetypeid:3 &alt=json

谷歌的结果没有任何命中,即使第一个查询显示了许多带有 pagetypeid:3 的命中。

如果尝试相同的查询但从 pagetypeid:3 更改为 pagetypeid:12,我会按预期收到命中。

为什么这些查询的处理方式不同?

这与排序的方式相同。使用按分数排序搜索 * 会返回 0,但使用 q=test+sort... 搜索会返回命中。是我如何将不同参数传递给 Google 的组合吗?

编辑: 是否有可能因为这是一个测试站点,除了我自己的查询之外没有其他流量 - 我的请求的响应在被索引之前已被缓存,因此我的查询返回过时的结果?

是否也有可能,当我在具有更多活动的站点上安装此集成时,索引(由 Google 提供)会更频繁地更新,因此这些“错误”不会出现?

提前致谢。

4

0 回答 0