You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用Google可编程搜索引擎动态限定站点子目录搜索范围

实现Google可编程搜索引擎动态限定当前游戏板块搜索范围的方案

要实现仅搜索用户当前所在的game-xx子站点,核心是动态提取当前页面的游戏板块路径,并将其作为搜索范围参数传递给Google可编程搜索引擎,具体步骤如下:


1. 提取当前页面的游戏板块根路径

首先需要从用户当前访问的URL中解析出对应游戏板块的根路径(比如site.com/game-01/),可以用JavaScript完成这个逻辑:

// 获取当前页面完整URL
const currentUrl = window.location.href;
// 正则匹配游戏板块根路径(适配http/https,支持game-数字格式的板块名)
const gamePathMatch = currentUrl.match(/(https?:\/\/[^\/]+\/game-\d+\/)/);
// 提取到的目标搜索范围,默认值可设为全站或空
const targetSearchRange = gamePathMatch ? gamePathMatch[1] : 'site.com';

如果你的游戏板块命名不是game-数字格式(比如game-mario),只需要调整正则表达式为:

const gamePathMatch = currentUrl.match(/(https?:\/\/[^\/]+\/game-[^\/]+\/)/);

2. 动态配置Google可编程搜索引擎的搜索范围

Google可编程搜索引擎支持通过as_sitesearch参数指定搜索范围,你可以通过两种方式实现动态传递:

方式一:HTML搜索表单动态赋值

适合用原生表单提交搜索的场景:

<!-- Google可编程搜索表单 -->
<form action="https://cse.google.com/cse" method="get">
  <!-- 替换为你的搜索引擎ID -->
  <input type="hidden" name="cx" value="your-search-engine-id">
  <!-- 动态设置搜索范围的隐藏参数 -->
  <input type="hidden" name="as_sitesearch" id="dynamic-site-range">
  <!-- 搜索输入框 -->
  <input type="text" name="q" placeholder="搜索当前游戏板块内容">
  <button type="submit">搜索</button>
</form>

<script>
// 页面加载时给隐藏参数赋值
window.addEventListener('load', () => {
  const currentUrl = window.location.href;
  const gamePathMatch = currentUrl.match(/(https?:\/\/[^\/]+\/game-\d+\/)/);
  const targetRange = gamePathMatch ? gamePathMatch[1] : 'site.com';
  document.getElementById('dynamic-site-range').value = targetRange;
});
</script>

方式二:使用Google自定义搜索Element动态配置

适合嵌入Google官方搜索组件的场景:

// 加载Google自定义搜索Element脚本
(function() {
  // 替换为你的搜索引擎ID
  const cx = 'your-search-engine-id';
  const gcseScript = document.createElement('script');
  gcseScript.type = 'text/javascript';
  gcseScript.async = true;
  gcseScript.src = `https://cse.google.com/cse.js?cx=${cx}`;
  const firstScript = document.getElementsByTagName('script')[0];
  firstScript.parentNode.insertBefore(gcseScript, firstScript);
})();

// 页面加载完成后配置搜索范围
window.addEventListener('load', () => {
  const currentUrl = window.location.href;
  const gamePathMatch = currentUrl.match(/(https?:\/\/[^\/]+\/game-\d+\/)/);
  const targetRange = gamePathMatch ? gamePathMatch[1] : '';
  
  if (targetRange) {
    // 获取搜索组件并设置站点搜索范围
    const searchElement = document.querySelector('gcse:search');
    searchElement.setAttribute('as_sitesearch', targetRange);
  }
});

3. 边界情况处理

  • 如果用户直接访问站点根目录(site.com),可以将默认搜索范围设为全站site.com,或者添加逻辑引导用户选择具体游戏板块。
  • 确保正则表达式完全匹配你的游戏板块路径格式,避免出现匹配错误导致搜索范围失效。
  • 提前在Google可编程搜索引擎后台创建好基础引擎,初始搜索范围可以设为全站,后续通过as_sitesearch参数覆盖即可。

内容的提问来源于stack exchange,提问作者Zhivago

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 02:00:11