semantic search#326
Closed
Johnson-zs wants to merge 17 commits into
Closed
Conversation
Johnson-zs
commented
Jun 25, 2026
Contributor
- feat: add semantic query validation in search
- feat: expand supported file extensions for search
- refactor: update semantic search rules and tests
- fix: improve IM received files search accuracy
- feat: enhance Chinese NLP action recognition
- feat: add hidden file search support for semantic search
- feat: add hidden-only file search functionality
- feat: add file extension filter support for searches
- fix: update semantic search validation conditions
- feat: add file extension field to search index
- feat: implement semantic search routing
- refactor: optimize file extension filtering in search strategies
- fix: correct loading of string list from DConfig
- refactor: convert HighlightOptions to Pimpl pattern
- fix: refactor ParsedIntent to use pimpl pattern
- refactor: refactor semantic types to use PIMPL pattern
- feat: implement recent files search via DBus RecentManager
1. Added validation checks to ensure only semantic queries are processed 2. Returns proper error when non-semantic query is detected 3. Suggest using FileName/Content search for non-semantic queries 4. Implemented in both async and sync search methods 5. Added warning logs for debugging invalid queries Log: Added semantic query validation to prevent processing invalid queries Influence: 1. Test with both semantic and non-semantic queries 2. Verify error handling for invalid queries 3. Check warning logs when non-semantic queries are submitted 4. Test various query formats to ensure proper classification 5. Verify search doesn't proceed with invalid queries feat: 在搜索中添加语义查询验证 1. 新增验证检查确保只处理语义查询 2. 检测到非语义查询时返回正确错误 3. 建议对非语义查询使用文件名/内容搜索 4. 在异步和同步搜索方法中均实现 5. 添加警告日志用于调试无效查询 Log: 新增语义查询验证以防止处理无效查询 Influence: 1. 测试语义和非语义查询 2. 验证无效查询的错误处理 3. 检查提交非语义查询时的警告日志 4. 测试不同查询格式以确保正确分类 5. 验证搜索不会处理无效查询
1. Significantly expanded the list of supported file extensions for image, video, audio and archive file types in Chinese NLP search 2. Added many modern and professional format extensions like AVIF, HEIC, CR2 (RAW photos) for images 3. Included more video formats like BDMV, MTS, VOB for professional video workflows 4. Added audio formats like FLAC variants, MIDI, mod tracker formats 5. Improved archive support with more formats like ACE, ARJ, CAB 6. Also updated the test cases to match the new extension lists Influence: 1. Test searching for various image formats including raw camera formats 2. Verify video search recognizes professional and less common formats 3. Check audio search for lossless and tracker formats 4. Validate archive file recognition with all new supported extensions 5. Test desktop file search functionality as it was newly added feat: 扩展搜索支持的文件扩展名列表 1. 大幅扩展中文NLP搜索支持的图片、视频、音频和压缩包文件扩展名 2. 为图片新增现代和专业格式支持如AVIF、HEIC、CR2(RAW格式) 3. 包含更多专业视频格式如BDMV、MTS、VOB 4. 添加音频格式支持包括FLAC变体、MIDI和mod跟踪器格式 5. 改进压缩包支持增加ACE、ARJ、CAB等格式 6. 同步更新了测试用例以适应新的扩展名列表 Influence: 1. 测试搜索各种图片格式包括RAW相机格式 2. 验证视频搜索识别专业和较少见的格式 3. 检查音频搜索对无损和跟踪器格式的支持 4. 测试所有新增支持的压缩包文件识别 5. 验证新增的desktop文件搜索功能
1. Removed trash/recycle bin related tests and rules from Chinese NLP as the functionality was deprecated 2. Added support for WeChat file location extraction with glob pattern matching 3. Implemented LocationExtractor with custom path resolution and glob expansion 4. Added comprehensive tests for location extraction and glob path handling 5. Reorganized file extension lists in tests for better readability 6. Added cleanup handling for test directories Influence: 1. Verify Chinese semantic search queries no longer support trash location 2. Test WeChat file path extraction with various patterns 3. Verify custom path expansion with glob patterns works correctly 4. Check regular XDG directory resolution still functions 5. Ensure file type and extension matching remains accurate refactor: 更新语义搜索规则和测试 1. 从中文自然语言处理中移除了回收站/垃圾箱相关测试和规则,因功能已弃用 2. 新增对微信文件路径的提取支持,包含通配符模式匹配 3. 实现LocationExtractor,支持自定义路径解析和通配符展开 4. 添加全面的位置提取和通配符路径处理测试 5. 重组测试中的文件扩展名列表以提高可读性 6. 添加测试目录的清理处理 影响范围: 1. 验证中文语义搜索不再支持回收站位置 2. 测试使用各种模式的微信文件路径提取 3. 确保带通配符的自定义路径展开正常工作 4. 检查普通的XDG目录解析功能仍正常 5. 确认文件类型和扩展名匹配仍准确
The changes enhance the handling of IM received files search in multiple ways. First, added a new test case 'imReceiveConsumesTriggerInKeyword' to verify that IM received trigger words are fully consumed and don't leak into keywords. Modified ActionExtractor to handle IM received files by resolving their paths and consuming the matched spans properly. Added new action rules for IM received files in zh_CN action rules and updated location rules with im_received flag for wechat files location. The main improvements include: 1. Proper span consumption for IM received files triggers 2. Path resolution for IM received files directories 3. New action rules for IM received files in Chinese 4. New metadata flag in location rules for IM received paths 5. More robust handling of multiple action dimensions Log: Improved accuracy of IM received files search by properly handling trigger words and path resolution Influence: 1. Test cases where IM received trigger words might leak into keywords 2. Verify IM received files search works with Chinese trigger phrases 3. Test with multiple IM received directories (WeChat etc.) 4. Verify time-based and IM received actions work together 5. Check path resolution works with both XDG and custom paths 6. Test with missing IM directories to ensure graceful fallback fix: 提高IM接收文件搜索准确性 此次修改从多个方面改进了IM接收文件搜索的处理。首先,添加了新测试用 例'imReceiveConsumesTriggerInKeyword'以验证IM接收触发词是否被完全消耗而 不会泄漏到关键词中。修改了ActionExtractor以正确处理IM接收文件,通过解析 路径并正确消耗匹配范围。在中文动作规则中添加了IM接收文件的新规则,并在位 置规则中更新了wechat文件路径的im_received标志。 主要改进包括: 1. 正确消耗IM接收文件触发词的范围 2. 解析IM接收文件的目录路径 3. 中文规则中添加IM接收文件的新动作规则 4. 在位置规则中添加用于IM接收路径的新元数据标志 5. 更健壮的多维度动作处理 Log: 通过正确处理触发词和路径解析,提高了IM接收文件搜索的准确性 Influence: 1. 测试IM接收触发词可能泄漏到关键词中的情况 2. 验证IM接收文件搜索与中文触发短语的兼容性 3. 测试多个IM接收目录(如微信等)的情况 4. 验证基于时间和IM接收的动作能否同时工作 5. 检查路径解析是否同时支持XDG和自定义路径 6. 测试缺少IM目录时能否优雅降级
1. Added "更新的文档" to test case inputs for modified files action 2. Added "修改的" pattern to action_modify rules for better coverage of Chinese modifications phrasing The changes improve the system's ability to recognize various Chinese phrases related to modified files, making search more intuitive for Chinese users by: 1. Expanding test coverage to include another common phrase variant 2. Adding a missing pattern that's commonly used to describe modified files Log: Improved Chinese NLP modification action recognition with additional phrases Influence: 1. Test Chinese search with new phrase "更新的文档" 2. Verify action recognition with pattern "修改的" 3. Check backward compatibility with existing modification phrases feat: 增强中文 NLP 动作识别能力 1. 在修改文件动作的测试用例中添加"更新的文档"输入 2. 在action_modify规则中添加"修改的"模式以提高中文修改短语的覆盖率 这些改进提升了系统识别中文修改相关短语的能力,通过以下方式使搜索对中文用 户更加直观: 1. 扩展测试用例覆盖更多常用短语变体 2. 添加描述修改文件的常用缺失模式 Log: 新增中文修改动作识别短语,提升NLP识别能力 Influence: 1. 测试"更新的文档"中文搜索效果 2. 验证"修改的"模式的动作识别功能 3. 检查与现有修改短语的向后兼容性
1. Added support for searching hidden files in semantic search by detecting Chinese phrases like "隐藏文件", "隐藏的", etc. 2. Extended the semantic query detection to consider hidden file intent as valid semantic query 3. Added new test cases for hidden file search functionality 4. Modified action rules JSON to include patterns for hidden file search with include_hidden metadata 5. Updated query validation checks to account for hidden file intentions Log: Added support for searching hidden files through semantic search queries Influence: 1. Test searching for hidden files using different Chinese phrases 2. Verify semantic search correctly identifies hidden file queries as valid 3. Check integration with existing search functionality 4. Test combined queries with hidden files and other constraints 5. Verify search results contain hidden files when specified feat: 为语义搜索添加隐藏文件搜索支持 1. 通过检测"隐藏文件"、"隐藏的"等中文短语,添加了对语义搜索中隐藏文件搜 索的支持 2. 扩展了语义查询检测功能,将隐藏文件意图视为有效语义查询 3. 为隐藏文件搜索功能添加了新的测试用例 4. 修改了动作规则JSON文件,包含带include_hidden元数据的隐藏文件搜索模式 5. 更新了查询验证检查以考虑隐藏文件意图 Log: 新增通过语义搜索查询搜索隐藏文件的功能 Influence: 1. 测试使用不同中文短语搜索隐藏文件 2. 验证语义搜索能够正确识别隐藏文件查询为有效查询 3. 检查与现有搜索功能的集成情况 4. 测试包含隐藏文件和其他限制条件的组合查询 5. 验证搜索结果在指定时包含隐藏文件
1. Added new hiddenOnly flag to support searching hidden files exclusively 2. Implemented hidden-only search in all search strategies (filename, content, OCR) 3. Updated semantic rules to detect hidden-only search requests 4. Modified semantic query builder to handle hidden-only cases appropriately 5. Ensured hiddenOnly flag works in both indexed and real-time search modes Log: Added functionality to search hidden files exclusively when needed Influence: 1. Test searching with "hiddenOnly" flag set to true in different search types 2. Verify semantic query detects "hidden files only" patterns in Chinese 3. Check interaction between includeHidden and hiddenOnly flags 4. Test with different combinations of search targets (filename, content, OCR) 5. Verify behavior in both indexed and real-time search modes feat: 新增仅搜索隐藏文件功能 1. 添加 hiddenOnly 标志以支持仅搜索隐藏文件 2. 在文件名搜索、内容搜索和OCR搜索中实现了仅搜索隐藏文件功能 3. 更新语义规则以检测"仅搜索隐藏文件"的请求 4. 修改语义查询构建器以正确处理仅搜索隐藏文件的情况 5. 确保 hiddenOnly 标志在索引搜索和实时搜索模式中都有效 Log: 新增按需仅搜索隐藏文件的功能 Influence: 1. 在各种搜索类型中测试设置 hiddenOnly 标志为 true 的情况 2. 验证中文语义查询是否能正确识别"仅搜索隐藏文件"的模式 3. 测试 includeHidden 和 hiddenOnly 标志的交互行为 4. 使用不同的搜索目标组合(文件名、内容、OCR)进行测试 5. 验证索引搜索和实时搜索模式中的行为
Added file extension filtering capability to search functionality. 1. Introduced setFileExtensions() and fileExtensions() API methods in TextSearchOptionsAPI 2. Implemented post-search filtering in both content and OCR search strategies 3. Modified semantic query builder to pass extension filters to underlying searches 4. Updated video file type rules by removing ts extension 5. Added extension filtering logic after Lucene index queries but before result processing The change allows users to filter search results by file extensions, improving search precision and performance by reducing unnecessary post- processing of unwanted file types. Log: Added file extension filter for search results Influence: 1. Test search with various extension filters set 2. Verify empty extension list returns all results 3. Check edge cases like mixed extensions and case sensitivity 4. Test interaction with other search filters 5. Verify semantic searches properly pass extension filters feat: 为搜索功能添加文件扩展名过滤支持 1. 在TextSearchOptionsAPI中添加setFileExtensions()和fileExtensions()方法 2. 在内容和OCR搜索策略中实现搜索后过滤功能 3. 修改语义查询构建器以将扩展名过滤传递到底层搜索 4. 更新视频文件类型规则(移除ts扩展名) 5. 在Lucene索引查询后但结果处理前添加扩展名过滤逻辑 此更改允许用户按文件扩展名过滤搜索结果,通过减少对不需要文件类型的不必要 后处理来提高搜索精度和性能。 Log: 为搜索结果添加了文件扩展名过滤功能 Influence: 1. 测试设置不同扩展名过滤器的搜索 2. 验证空扩展名列表返回所有结果 3. 检查混合扩展名和大小写敏感性边缘情况 4. 测试与其他搜索过滤器的交互 5. 验证语义搜索是否正确传递扩展名过滤器
1. Removed "ts" from video extensions list as it's not a standard video format 2. Added check for intent.consumedSpans in semantic query validation 3. Updated conditions in both test and implementation files to match 4. This change ensures more accurate video format detection and complete semantic search validation Influence: 1. Test video file searches to verify only valid video formats are recognized 2. Validate semantic search behavior for queries with consumed spans 3. Verify all other semantic search conditions remain functional as expected fix: 更新语义搜索验证条件 1. 从视频扩展列表中移除了"ts"格式,因为它不是标准视频格式 2. 在语义查询验证中添加了对intent.consumedSpans的检查 3. 更新了测试和实现文件中的条件以保持同步 4. 此更改确保了更准确的视频格式检测和完整的语义搜索验证 Influence: 1. 测试视频文件搜索功能,验证只有有效的视频格式被识别 2. 验证带有consumed spans的查询的语义搜索行为 3. 确保其他所有语义搜索条件功能正常
1. Added kFileExt field to both Content and OcrText namespaces in field_names.h 2. This field will be used to index and search by file extensions 3. Enables better filtering and searching capabilities for specific file types Log: Added file extension field to search index for improved file type filtering Influence: 1. Test search functionality with file extension filters 2. Verify correct indexing of file extensions 3. Check compatibility with existing search queries 4. Test combination searches with filename and extension filters feat: 在搜索索引中添加文件扩展名字段 1. 在field_names.h文件中为Content和OcrText命名空间添加了kFileExt字段 2. 该字段将用于按文件扩展名进行索引和搜索 3. 支持更好地按特定文件类型进行筛选和搜索 Log: 在搜索索引中添加文件扩展名字段以改进文件类型筛选功能 Influence: 1. 测试带文件扩展名过滤器的搜索功能 2. 验证文件扩展名的正确索引 3. 检查与现有搜索查询的兼容性 4. 测试文件名和扩展名过滤器的组合搜索
1. Added semantic search routing logic to determine Content or Ocr type based on file extensions 2. Added new functions to load document and picture extensions from dconfig 3. Updated fetchContent and fetchHighlight methods to handle semantic routing 4. Added test cases for semantic routing failure scenarios 5. Improved error handling and warning messages for unsupported file types Log: Implemented semantic search routing functionality that automatically detects content type (document/ocr) based on file extensions Influence: 1. Test with files matching document and picture extensions (should route correctly) 2. Test with unsupported extensions (should return empty with warning) 3. Verify error message logging 4. Test batch operations with mixed file types 5. Verify empty handling when dconfig is unavailable feat: 实现语义搜索路由功能 1. 添加了基于文件扩展名的语义搜索路由逻辑,自动判断内容类型(文档/OCR) 2. 新增从dconfig加载文档和图片扩展名的功能 3. 更新fetchContent和fetchHighlight方法以支持语义路由 4. 添加了语义路由失败场景的测试用例 5. 改进了对不支持文件类型的错误处理和警告信息 Log: 实现了基于文件扩展名自动检测内容类型(文档/OCR)的语义搜索路由功能 Influence: 1. 测试与文档和图片扩展名匹配的文件(应正确路由) 2. 测试不支持的扩展名(应返回空并输出警告) 3. 验证错误消息日志记录 4. 测试混合文件类型的批量操作 5. 验证当dconfig不可用时的空处理
Moved file extension filtering from post-query processing to index query layer in both content search and OCR text search strategies. Removed QFileInfo usage and implemented the filtering directly in Lucene queries by: 1. Adding file extension filtering to the Lucene query itself 2. Eliminating post-processing file extension checks 3. Removing unused QFileInfo includes 4. Using standard Lucene term queries for file extension matching This change improves search performance by: 1. Reducing memory usage by avoiding post-query filtering 2. Decreasing disk I/O since irrelevant files are filtered out earlier 3. Removing the need for QFileInfo operations during results processing 4. Leveraging Lucene's efficient term queries for exact extension matching Log: Optimized file extension filtering in search operations Influence: 1. Verify search operations still work with various file extensions 2. Test search with multiple extension filters 3. Validate search performance with large result sets 4. Check that existing search functionality remains unchanged 5. Confirm accurate results when no extension filters are specified refactor: 优化搜索策略中的文件扩展名过滤 将文件扩展名过滤从查询后处理移动到索引查询层,涵盖内容搜索和OCR文本搜索 策略。优化内容包括: 1. 在Lucene查询中直接添加文件扩展名过滤 2. 消除查询后的文件扩展名检查 3. 移除未使用的QFileInfo引用 4. 使用标准Lucene词条查询进行文件扩展名匹配 此变更通过以下方式提升搜索性能: 1. 减少内存使用,避免查询后过滤 2. 降低磁盘I/O,因为无关文件更早被过滤 3. 去除结果处理中的QFileInfo操作 4. 利用Lucene高效的词条查询进行精确扩展名匹配 Log: 优化搜索操作中的文件扩展名过滤 Influence: 1. 验证各种文件扩展名的搜索操作仍正常工作 2. 测试使用多个扩展名过滤器的搜索 3. 在大结果集下验证搜索性能 4. 确认现有搜索功能保持不变 5. 检查未指定扩展名过滤器时的结果准确性
1. Changed `value.toStringList()` to `value.toString().split(';')` in
`tryLoadStringListFromDConfigInternal`.
2. The DConfig value for `supportedFileExtensions` is stored as a
semicolon-separated string, not a native QStringList.
3. Previously, `toStringList()` would fail due to type mismatch,
returning `std::nullopt` or an empty list.
4. Now the function correctly parses the string into a list, restoring
proper file extension filtering in searches.
Log: Fixed search file extension configuration loading
Influence:
1. Verify that searching with file extension filters (e.g., *.txt,
*.pdf) functions correctly.
2. Test with multiple extensions in the configuration string.
3. Test with an empty string to ensure no extensions are applied.
4. Test with invalid or malformed extension strings (e.g., missing
separators).
5. Verify that the fix does not break existing functionality when the
config is not set.
fix: 修正从 DConfig 加载字符串列表的方式
1. 将 `tryLoadStringListFromDConfigInternal` 中的 `value.toStringList()`
改为 `value.toString().split(';')`。
2. `supportedFileExtensions` 的 DConfig 值存储为分号分隔的字符串,而非原
生的 QStringList。
3. 之前使用 `toStringList()` 会因类型不匹配而返回 `std::nullopt` 或空
列表。
4. 现在函数能正确解析字符串为列表,恢复搜索中正确的文件扩展名过滤。
Log: 修复搜索文件扩展名配置加载问题
Influence:
1. 验证带文件扩展名过滤(如 *.txt, *.pdf)的搜索功能是否正常。
2. 测试配置中包含多个扩展名的情况。
3. 测试空字符串配置,确保不应用任何扩展名过滤。
4. 测试无效或格式错误的扩展名字符串(例如缺少分隔符)。
5. 验证未设置配置时原有功能不受影响。
Changed the HighlightOptions from a plain struct to a Pimpl (Pointer to Implementation) class pattern with QSharedDataPointer for implicit sharing (COW - Copy On Write) support. This provides better ABI stability and encapsulation. Key changes: 1. Converted plain struct to class with private implementation 2. Added getter/setter methods for all properties 3. Implemented proper copy/move semantics 4. Added QSharedDataPointer for efficient copying 5. Updated all usage sites to use new accessor methods The change was made to: 1. Improve ABI stability - changes to implementation won't break binary compatibility 2. Enable future extensibility without breaking changes 3. Reduce header dependencies through proper encapsulation 4. Allow implicit sharing for efficient copying 5. Better control over member access The Pimpl pattern gives better binary compatibility guarantees and prepares the codebase for future extensions while maintaining the same functionality. Log: Updated HighlightOptions implementation to use Pimpl pattern Influence: 1. Verify snippet highlight extraction still works in file search results 2. Test content preview generation in search results 3. Check search functionality in file manager 4. Validate highlighter works with different preview length settings 5. Verify HTML wrapping option works when enabled refactor: 将 HighlightOptions 转换为 Pimpl 模式 将 HighlightOptions 从普通结构体转换为使用 Pimpl(Pointer to Implementation)模式和 QSharedDataPointer 支持隐式共享(COW - 写入时复 制)的类。这提供了更好的ABI稳定性和封装性。 主要变更: 1. 将普通结构体转换为具有私有实现的类 2. 为所有属性添加getter/setter方法 3. 实现适当的拷贝/移动语义 4. 添加QSharedDataPointer以支持高效复制 5. 更新所有使用点以使用新的访问方法 此次更改的目的: 1. 提高ABI稳定性 - 实现更改不会破坏二进制兼容性 2. 支持未来扩展性而无需破坏性更改 3. 通过适当封装减少头文件依赖 4. 允许隐式共享以提高复制效率 5. 更好地控制成员访问 Pimpl模式提供了更好的二进制兼容性保证,并使代码库准备好未来扩展,同时保 持相同功能。 Log: 更新 HighlightOptions 实现以使用 Pimpl 模式 Influence: 1. 验证文件搜索结果中的片段高亮提取功能仍正常工作 2. 测试搜索结果中内容预览生成 3. 检查文件管理器中的搜索功能 4. 验证高亮器在不同的预览长度设置下工作正常 5. 验证HTML包装选项在启用时正常工作
1. Change ParsedIntent from struct to class with QSharedDataPointer 2. Add private implementation class ParsedIntentPrivate 3. Implement proper copy/move semantics 4. Add getter/setter methods for all fields 5. Update all usage points to use new accessors Influence: 1. All test cases involving ParsedIntent need to be verified 2. Semantic search functionality should work as before 3. Pay attention to deep copy behavior and performance impact fix: 重构 ParsedIntent 使用 pimpl 模式 1. 将 ParsedIntent 从结构体改为使用 QSharedDataPointer 的类 2. 添加私有实现类 ParsedIntentPrivate 3. 实现正确的拷贝/移动语义 4. 为所有字段添加 getter/setter 方法 5. 更新所有使用点以使用新的访问器 影响: 1. 需要验证所有涉及 ParsedIntent 的测试用例 2. 语义搜索功能应保持原有行为 3. 注意深拷贝行为和性能影响
Refactored semantic types MatchSpan, TimeConstraint, and SizeConstraint to use PIMPL pattern for better ABI stability and encapsulation. Changed all direct member access to use getter/setter methods. 1. Moved all internal data members to Private classes 2. Added proper copy/move constructors and operators 3. Maintained all existing functionality while improving encapsulation Influence: 1. All test cases need to be updated to use getter methods 2. Client code needs to be updated to use getter/setter methods instead of direct member access refactor: 重构语义类型使用PIMPL模式 将语义类型MatchSpan、TimeConstraint和SizeConstraint重构为使用PIMPL模式, 以提高ABI稳定性和封装性。将所有直接成员访问改为使用getter/setter方法。 1. 将所有内部数据成员移至Private类 2. 添加了正确的拷贝/移动构造函数和运算符 3. 在提高封装性的同时保持了所有现有功能 影响: 1. 需要更新所有测试用例以使用getter方法 2. 需要更新客户端代码以使用getter/setter方法而非直接成员访问
Added support for searching recently-used files through DBus RecentManager interface. This involves a new SearchType::Recent enum value and a dedicated RecentSearchEngine. The feature is triggered by natural language patterns like "看过的" or "打开过的". Key changes: 1. Added RecentSearchEngine and related DBus integration 2. Implemented search strategy with keyword, extension, and time filtering 3. Added new semantic rules for Chinese NLP to trigger recent searches 4. Extended ParsedIntent to include recentOnly flag 5. Updated semantic query building and execution logic to handle recent searches Log: Added recent files search functionality via DBus RecentManager Influence: 1. Test Chinese NLP patterns like "打开过的文件" and "看过的pdf" 2. Verify time constraints work with recent items 3. Test keyword and extension filtering 4. Verify bare verbs like "打开文件" don't trigger recent search 5. Check that recentOnly properly suppresses index-based searches 6. Test DBus error handling and fallback behavior feat: 通过DBus RecentManager实现最近文件搜索功能 新增通过DBus RecentManager接口搜索最近使用文件的支持。 包括新的SearchType::Recent枚举值和专用的RecentSearchEngine。 该功能通过"看过的"、"打开过的"等自然语言模式触发。 主要变更: 1. 新增RecentSearchEngine及相关DBus集成 2. 实现带关键词、扩展名和时间过滤的搜索策略 3. 为中文NLP添加新的语义规则以触发最近文件搜索 4. 扩展ParsedIntent包含recentOnly标志 5. 更新语义查询构建和执行逻辑以处理最近文件搜索 Log: 新增通过DBus RecentManager搜索最近文件的功能 影响范围: 1. 测试中文NLP模式如"打开过的文件"和"看过的pdf" 2. 验证时间约束条件与最近文件的交互 3. 测试关键词和扩展名过滤功能 4. 验证"打开文件"等简单动词不会误触发最近文件搜索 5. 检查recentOnly正确抑制基于索引的搜索 6. 测试DBus错误处理和回退行为
There was a problem hiding this comment.
Sorry @Johnson-zs, your pull request is larger than the review limit of 150000 diff characters
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Johnson-zs The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.