cherry-studio/docs
beyondkmp bc9eeb9f30
feat: add fuzzy search for file list with relevance scoring (#12131)
* feat: add fuzzy search for file list with relevance scoring

- Add fuzzy option to DirectoryListOptions (default: true)
- Implement isFuzzyMatch for subsequence matching
- Add getFuzzyMatchScore for relevance-based sorting
- Remove searchByContent method (content-based search)
- Increase maxDepth to 10 and maxEntries to 20

* perf: optimize fuzzy search with ripgrep glob pre-filtering

- Add queryToGlobPattern to convert query to glob pattern
- Use ripgrep --iglob for initial filtering instead of loading all files
- Reduces memory footprint and improves performance for large directories

* feat: add greedy substring match fallback for fuzzy search

- Add isGreedySubstringMatch for flexible matching
- Fallback to greedy match when glob pre-filter returns empty
- Allows 'updatercontroller' to match 'updateController.ts'

* fix: improve greedy substring match algorithm

- Search from longest to shortest substring for better matching
- Fix issue where 'updatercontroller' couldn't match 'updateController'

* docs: add fuzzy search documentation (en/zh)

* refactor: extract MAX_ENTRIES_PER_SEARCH constant

* refactor: use logarithmic scaling for path length penalty

- Replace linear penalty (0.8 * length) with logarithmic scaling
- Prevents long paths from dominating the score
- Add PATH_LENGTH_PENALTY_FACTOR constant with explanation

* refactor: extract scoring constants with documentation

- Add named constants for scoring factors (SCORE_SEGMENT_MATCH, etc.)
- Update en/zh documentation with scoring strategy explanation

* refactor: move PATH_LENGTH_PENALTY_FACTOR to class level constant

* refactor: extract buildRipgrepBaseArgs helper method

- Reduce code duplication for ripgrep argument building
- Consolidate directory exclusion patterns and depth handling

* refactor: rename MAX_ENTRIES_PER_SEARCH to MAX_SEARCH_RESULTS

* fix: escape ! character in glob pattern for negation support

* fix: avoid duplicate scoring for filename starts and contains

* docs: clarify fuzzy search filtering and scoring strategies

* fix: limit word boundary bonus to single match

* fix: add dedicated scoring for greedy substring match

- Add getGreedyMatchScore function that rewards fewer fragments and tighter matches
- Add isFuzzyMatch validation before scoring in fuzzy glob path
- Use greedy scoring for fallback path to properly rank longest matches first

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>

---------

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-30 19:42:56 +08:00
..
assets/images docs: update docs directory structure 2025-11-26 13:17:01 +08:00
en feat: add fuzzy search for file list with relevance scoring (#12131) 2025-12-30 19:42:56 +08:00
zh feat: add fuzzy search for file list with relevance scoring (#12131) 2025-12-30 19:42:56 +08:00
README.md docs: update docs directory structure 2025-11-26 13:17:01 +08:00

Cherry Studio Documentation / 文档

This directory contains the project documentation in multiple languages.

本目录包含多语言项目文档。


Languages / 语言

  • 中文文档 - Chinese Documentation
  • English Documentation - See sections below

English Documentation

Guides

Document Description
Development Setup Development environment setup
Branching Strategy Git branching workflow
i18n Guide Internationalization guide
Logging Guide How to use the logger service
Test Plan Test plan and release channels

References

Document Description
App Upgrade Config Application upgrade configuration
CodeBlockView Component Code block view component
Image Preview Components Image preview components

中文文档

指南 (Guides)

文档 说明
开发环境设置 开发环境配置
贡献指南 如何贡献代码
分支策略 Git 分支工作流
测试计划 测试计划和发布通道
国际化指南 国际化开发指南
日志使用指南 如何使用日志服务
中间件开发 如何编写中间件
记忆功能 记忆功能使用指南
赞助信息 赞助相关信息

参考 (References)

文档 说明
消息系统 消息系统架构和 API
数据库结构 数据库表结构
服务 服务层文档 (KnowledgeService)
代码执行 代码执行功能
应用升级配置 应用升级配置
CodeBlockView 组件 代码块视图组件
图像预览组件 图像预览组件

Missing Translations / 缺少翻译

The following documents are only available in Chinese and need English translations:

以下文档仅有中文版本,需要英文翻译:

  • guides/contributing.md
  • guides/memory.md
  • guides/middleware.md
  • guides/sponsor.md
  • references/message-system.md
  • references/database.md
  • references/services.md
  • references/code-execution.md