【问题标题】:Google CSE returns different results with same query?Google CSE 使用相同的查询返回不同的结果?
【发布时间】:2018-04-10 08:42:02
【问题描述】:

为什么 Google 的 CSE 会针对同一个查询字符串返回不同的结果?

为了清楚起见,我并不是要重现实际 Google 搜索引擎的结果。我只想从自定义搜索中获得一致的结果。

我正在将 CSE 用于一个实践项目,并且我正在处理分页。当我两次提交相同的请求,仅更改 start 参数的值时,我得到的 searchInformation.totalResults 值大不相同。

当我对返回数百万个结果的随机词(例如鸡)进行正常搜索时,请求之间的差异是数百万。

当我进行旨在仅返回相对较少结果的疯狂搜索时,差异足以显着改变搜索结果的页数。

这是一个疯狂搜索的例子:鸡马来西亚比赛-masterchef serama bbc facebook

如果我运行一次,它可能会返回 40 个结果。如果我转到结果的“下一页”(将 start 参数增加 10),它可能会显示 49 个结果……或 21 个结果……到处都是。

为什么会这样?

这是我的代码(节点)的子集:

function cseSearch (req) {
  let searchType = req.query.searchType
  let cseId = process.env['CSE_ID_' + searchType.toUpperCase()]
  let start = req.query.page ? (req.query.page * 10) - 10 : 1
  if (start < 1) start = 1

  let options = {
    uri: 'https://www.googleapis.com/customsearch/v1/',
    qs: {
      q: req.query.query,
      cx: cseId,
      key: process.env.API_KEY,
      num: 10,
      safe: 'high',
      start: start
    },
    json: true
  }

  return rp(options)
    .then(results => {
      console.log(results.searchInformation)
      console.log(results)
      let pages = Math.floor(results.searchInformation.totalResults / 10) + 1
      let data = {
        searchType: req.query.searchType,
        searchTime: results.searchInformation.formattedSearchTime,
        resultCount: results.searchInformation.formattedTotalResults,
        items: results.items,
        pages: pages
      }
      console.log(`pages: ${pages}`)
      return data
    })
    .catch(error => {
      console.log(error)
      return error
    })
}
  • rp()request-promise-native 模块。
  • 我的 CSE 项目设置时未指定任何域并使用 Thing 架构。

你可以在 https://github.com/VAggrippino/findIt 找到整个东西,但它仍然很粗糙。

【问题讨论】:

    标签: node.js google-custom-search


    【解决方案1】:

    由于 google 使用了如此多的服务器/集群,您不可能每次都获得一致的结果。因此,您必须每次都指定 start 参数,就好像它是一个新查询一样。

    【讨论】:

      猜你喜欢
      • 2017-05-08
      • 1970-01-01
      • 2011-06-24
      • 2014-09-24
      • 1970-01-01
      • 2011-11-08
      • 2013-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多