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

前端:如何为媒体搜索函数添加描述搜索功能

给搜索函数新增按描述搜索的功能需要做这些改动

嘿,我来帮你拆解下需要添加的内容~因为你没贴出具体函数代码,我就按通用的开发场景给你梳理:

  • 新增描述搜索的参数:首先得让函数能接收描述相关的搜索关键词,要么单独加一个参数(比如description_search),要么把原有的标题搜索参数扩展成支持多字段的通用查询参数,方便后续灵活调用。
  • 扩展查询匹配逻辑:这是核心改动——原来的逻辑只匹配媒体标题,现在要把描述字段也加入匹配条件。举两个常见场景的例子:
    • 如果是用原生SQL查询:把原来的WHERE title LIKE '%{title_query}%'改成WHERE title LIKE '%{query}%' OR description LIKE '%{query}%'(如果是统一的搜索词),或者根据参数是否存在来动态组合条件。
    • 如果是用ORM框架(比如Django、SQLAlchemy):用逻辑或(OR)把标题和描述的查询条件组合起来,比如Django里的Q(title__icontains=search_query) | Q(description__icontains=search_query)。
  • 处理参数的可选性:如果你的函数需要支持“只搜标题”“只搜描述”“两者都搜”这几种模式,要加判断逻辑——比如当描述参数为空时,沿用原有的标题搜索逻辑;当标题参数为空时,只匹配描述;两者都有就同时匹配。
  • 可选的性能优化:如果你的数据量比较大,给描述字段加合适的索引(比如全文索引,比普通的LIKE查询效率高很多),避免因为新增描述搜索导致查询变慢。
  • 参数校验与预处理:和标题搜索一样,对描述的搜索关键词做预处理,比如去除首尾空格、转义特殊字符(防止SQL注入或者正则匹配问题)。

举个简单的Python函数示例(假设是基于SQLite的):

# 原来的函数(仅按标题搜索)
def search_media_by_title(title_query):
    conn = sqlite3.connect('media.db')
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM media WHERE title LIKE ?", (f'%{title_query}%',))
    results = cursor.fetchall()
    conn.close()
    return results

# 修改后支持标题+描述搜索的函数
def search_media(query, search_title=True, search_description=True):
    conn = sqlite3.connect('media.db')
    cursor = conn.cursor()
    
    # 动态构建查询条件
    conditions = []
    params = []
    if search_title:
        conditions.append("title LIKE ?")
        params.append(f'%{query}%')
    if search_description:
        conditions.append("description LIKE ?")
        params.append(f'%{query}%')
    
    if not conditions:
        return []  # 无搜索条件时返回空结果
    
    query_sql = f"SELECT * FROM media WHERE {' OR '.join(conditions)}"
    cursor.execute(query_sql, params)
    results = cursor.fetchall()
    conn.close()
    return results

这样修改后,既保留了原有的标题搜索功能,又新增了描述搜索的选项,还支持灵活组合两种搜索模式~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 08:43:19