用途:为全栈应用实现搜索与筛选功能,提供可投入生产的模式,覆盖前端 React/TypeScript 组件与后端 Python 查询优化。
主要能力:前端包括带 300ms 防抖的搜索输入、加载状态、清除按钮、Cmd/Ctrl+K 快捷键;自动补全/typeahead 支持键盘导航、匹配文本高亮、最近搜索;筛选 UI 含复选框多选、范围滑块、下拉单选、筛选标签。后端包括 SQLAlchemy 动态查询、Django ORM 链式过滤、索引优化、PostgreSQL 全文搜索、Elasticsearch 索引与查询 DSL、分面聚合、相关性评分,以及 RESTful 搜索端点、参数校验、分页与响应缓存。
使用方式:按数据量选择方案——少于 1000 条用客户端搜索,超过 1000 条用服务端搜索,也可混合使用。前端可用 Downshift(npm install downshift)或 React Select;后端可用 SQLAlchemy、Django REST Framework、elasticsearch-py 与 elasticsearch-dsl。附带参考文档、脚本(generate_filter_query.py、validate_search_params.py、debounce_calculator.js)与示例(product-search.tsx、autocomplete-search.tsx、sqlalchemy_search.py、fastapi_search.py、django_filter_backend.py)。
适用场景:商品搜索与分类价格筛选、自动补全、分面搜索、数据表格搜索、高级布尔搜索、Elasticsearch 全文检索。
限制:需自行处理输入清洗、防 SQL 注入、限流;可访问性需遵循 ARIA 与键盘支持要求。具体收费、平台与效果资料暂未提供。