search_optimization.md 9.0 KB


name: search-optimization

description: 搜索优化和关键词策略

搜索优化

关键词策略

1. 关键词类型

核心关键词

  • 定义:直接描述主题的词
  • 特点:搜索量大,竞争激烈
  • 示例
    • "抗日" - 历史主题
    • "养生" - 健康主题
    • "感动" - 情感主题

长尾关键词

  • 定义:更具体、更精确的词组
  • 特点:搜索量小,精准度高
  • 示例
    • "14岁抗日娃娃军" - 具体事件
    • "老年人养生操" - 具体方法
    • "感动中国人物" - 具体类型

修饰关键词

  • 定义:增加限定条件的词
  • 特点:缩小范围,提高相关性
  • 示例
    • 时间:最新、2025、近期
    • 程度:最、超级、非常
    • 情感:感动、震撼、温馨
    • 对象:老年人、孩子、女性

2. 关键词组合

基础组合

核心词 + 修饰词
示例:
- "抗日" + "感动" = "抗日感动"
- "养生" + "老年人" = "老年人养生"

高级组合

核心词 + 修饰词 + 限定词
示例:
- "抗日" + "娃娃军" + "感动" = "抗日娃娃军感动"
- "养生" + "操" + "老年人" = "老年人养生操"

同义词替换

原词 → 同义词
示例:
- "抗日" → "抗战"、"抗日战争"
- "感动" → "震撼"、"泪目"、"催泪"
- "养生" → "保健"、"健康"、"长寿"

3. 关键词扩展

方法1:使用搜索建议

# 使用 get_search_suggestions 工具
keyword = "抗日"
suggestions = get_search_suggestions(keyword, channel="douyin")

# 从建议中选择相关词
# 示例结果:
# - "抗日英雄"
# - "抗日战争"
# - "抗日神剧"
# - "抗日老兵"

方法2:提取视频标签

# 从搜索结果中提取标签
video_detail = video_library_get_detail(video_id)
tags = video_detail["tags"]

# 使用标签作为新的关键词
# 示例:["抗日", "娃娃军", "感动", "历史"]

方法3:分析相关内容

# 查看相关视频的关键词
related_videos = search_posts("抗日", channel="douyin")

# 提取高频词汇
# 分析标题中的共同词

搜索策略

1. 渐进式搜索

阶段1:宽泛搜索

目标:了解整体情况
关键词:核心词
示例:"抗日"
预期:结果多,相关性一般

阶段2:精确搜索

目标:缩小范围
关键词:核心词 + 修饰词
示例:"抗日 + 感动"
预期:结果适中,相关性提高

阶段3:精准搜索

目标:找到目标内容
关键词:长尾关键词
示例:"抗日娃娃军感动"
预期:结果少,相关性高

2. 多维度搜索

维度1:不同平台

platforms = ["douyin", "xhs", "bili", "zhihu"]

for platform in platforms:
    results = search_posts(keyword, channel=platform)
    # 分析各平台的内容特点

维度2:不同关键词

keywords = ["抗日娃娃军", "抗日英雄", "抗日老兵"]

for keyword in keywords:
    results = search_posts(keyword, channel="douyin")
    # 对比不同关键词的结果

维度3:不同时间

# 搜索不同时间段的内容
filters = {
    "date_range": "recent"  # 最近、本月、本年
}
results = search_posts(keyword, filters=filters)

3. 迭代优化

循环1:搜索 → 分析 → 调整

1. 使用初始关键词搜索
2. 分析搜索结果质量
3. 根据结果调整关键词
4. 重复1-3直到满意

循环2:发现 → 扩展 → 验证

1. 发现有价值的内容
2. 提取相关关键词和标签
3. 使用新关键词搜索
4. 验证新结果的质量

搜索技巧

1. 关键词优化

技巧1:去除无效词

无效词:的、了、吗、呢、啊
示例:
- "抗日的娃娃军" → "抗日娃娃军"
- "让人感动的视频" → "感动视频"

技巧2:使用引号精确匹配

某些平台支持引号搜索
示例:
- "抗日娃娃军" - 精确匹配这个词组

技巧3:使用空格分隔

多个关键词用空格分隔
示例:
- "抗日 娃娃军 感动"

2. 结果筛选

按数据指标筛选

# 设置最低阈值
min_likes = 5000
min_comments = 100

# 过滤结果
filtered_results = [
    video for video in results
    if video["like_count"] >= min_likes
    and video["comment_count"] >= min_comments
]

按时间筛选

# 只要最近的内容
from datetime import datetime, timedelta

recent_date = datetime.now() - timedelta(days=30)

filtered_results = [
    video for video in results
    if video["publish_time"] >= recent_date
]

按标签筛选

# 必须包含特定标签
required_tags = ["抗日", "感动"]

filtered_results = [
    video for video in results
    if any(tag in video["tags"] for tag in required_tags)
]

3. 结果排序

按相关性排序

# 计算相关性得分
def relevance_score(video, keywords):
    score = 0
    title = video["title"].lower()
    for keyword in keywords:
        if keyword in title:
            score += 1
    return score

# 排序
sorted_results = sorted(
    results,
    key=lambda v: relevance_score(v, keywords),
    reverse=True
)

按质量排序

# 综合质量得分
def quality_score(video):
    likes = video["like_count"]
    comments = video["comment_count"]
    shares = video["share_count"]
    return likes * 0.5 + comments * 0.3 + shares * 0.2

# 排序
sorted_results = sorted(
    results,
    key=quality_score,
    reverse=True
)

平台特性

抖音(Douyin)

搜索特点

  • 算法推荐强
  • 热门内容优先
  • 标签系统完善

优化建议

  • 使用热门标签
  • 关注话题挑战
  • 利用搜索建议

最佳实践

# 1. 先搜索核心词
results = search_posts("抗日", channel="douyin", max_count=20)

# 2. 获取搜索建议
suggestions = get_search_suggestions("抗日", channel="douyin")

# 3. 使用建议词搜索
for suggestion in suggestions:
    results = search_posts(suggestion, channel="douyin")

小红书(XHS)

搜索特点

  • 图文结合
  • 种草属性强
  • 女性用户多

优化建议

  • 关注生活化关键词
  • 使用情感化词汇
  • 注意标题党

B站(Bili)

搜索特点

  • 长视频为主
  • 深度内容多
  • 年轻用户多

优化建议

  • 使用专业术语
  • 关注UP主
  • 查看分区

知乎(Zhihu)

搜索特点

  • 文字为主
  • 深度讨论
  • 高学历用户

优化建议

  • 使用问题式关键词
  • 关注高赞回答
  • 查看话题

常见问题

Q: 搜索结果太少怎么办?

A: 优化策略

  1. 简化关键词

    • 去掉修饰词
    • 使用更通用的词
    • 尝试同义词
  2. 扩大范围

    • 增加平台
    • 放宽筛选条件
    • 延长时间范围
  3. 调整策略

    • 从精准搜索改为宽泛搜索
    • 使用核心词而非长尾词

Q: 搜索结果太多怎么办?

A: 优化策略

  1. 精确关键词

    • 添加修饰词
    • 使用长尾关键词
    • 增加限定条件
  2. 提高阈值

    • 提高最低点赞数
    • 提高最低评论数
    • 限制发布时间
  3. 使用过滤

    • 按标签过滤
    • 按账号过滤
    • 按受众过滤

Q: 搜索结果不相关怎么办?

A: 优化策略

  1. 检查关键词

    • 是否有歧义
    • 是否太宽泛
    • 是否拼写错误
  2. 调整组合

    • 改变关键词顺序
    • 添加限定词
    • 使用引号精确匹配
  3. 换个角度

    • 从不同角度描述需求
    • 使用不同的表达方式
    • 参考相关内容的关键词

最佳实践

1. 搜索前准备

- 明确搜索目标
- 列出核心关键词
- 准备同义词列表
- 设定筛选标准

2. 搜索过程

- 从宽到窄逐步搜索
- 记录每次搜索的关键词和结果
- 及时调整策略
- 保存有价值的结果

3. 搜索后处理

- 分析结果质量
- 提取有效关键词
- 保存成功的搜索策略
- 总结经验教训

4. 持续优化

- 定期回顾搜索策略
- 更新关键词库
- 学习新的搜索技巧
- 分享成功经验

搜索模板

模板1:历史内容搜索

# 1. 核心词搜索
results_1 = search_posts("抗日", channel="douyin")

# 2. 添加情感词
results_2 = search_posts("抗日 感动", channel="douyin")

# 3. 使用长尾词
results_3 = search_posts("抗日娃娃军", channel="douyin")

# 4. 获取建议词
suggestions = get_search_suggestions("抗日", channel="douyin")

# 5. 使用建议词搜索
for suggestion in suggestions:
    results = search_posts(suggestion, channel="douyin")

模板2:养生内容搜索

# 1. 核心词搜索
results_1 = search_posts("养生", channel="douyin")

# 2. 添加受众词
results_2 = search_posts("养生 老年人", channel="douyin")

# 3. 添加方法词
results_3 = search_posts("老年人养生操", channel="douyin")

# 4. 验证受众
for video in results_3:
    profile = hotspot_get_video_profile(video["url"])
    # 检查年龄分布