b76fc64325
fix: ajout méthode is_stale() manquante dans InvertedIndex
2026-05-30 17:00:00 -04:00
fe1a2be364
fix: stem_token/stem_tokens — try/except sur crash snowballstemmer (IndexError sur tokens exotiques)
CI / lint (push) Successful in 14s
CI / security (push) Successful in 8s
CI / test (push) Successful in 16s
CI / build (push) Successful in 2s
2026-05-29 13:33:04 -04:00
1b9ba69c52
perf: O(T) stemming instead of O(S×T) — fixes 15min index freeze
...
CI / lint (push) Successful in 14s
CI / security (push) Successful in 9s
CI / test (push) Successful in 18s
CI / build (push) Successful in 4s
Replace double-nested stem loop (stems × tokens) with single-pass
stem frequency map. For 100 unique tokens per file: 10,000 iterations
→ 100 iterations per file. Critical for large vaults.
2026-05-28 15:23:51 -04:00
23fa003422
feat: French stemming (snowballstemmer) — 'recettes' matches 'recette', 'mangeons' matches 'manger'
...
CI / test (push) Has been cancelled
CI / security (push) Has been cancelled
CI / build (push) Has been cancelled
CI / lint (push) Has been cancelled
Add French snowball stemmer to tokenization pipeline:
- Index both original tokens AND their stems in InvertedIndex
- Query terms are also stemmed before lookup
- Stemmed forms accumulate TF from all original forms
- Lazy-init singleton pattern for stemmer
2026-05-28 13:15:37 -04:00
7b2da1ff6a
feat: CI/CD pipeline + sortedcontainers for O(log n) index ops
...
CI / lint (push) Failing after 2m3s
CI / test (push) Has been skipped
CI / build (push) Has been skipped
CI / security (push) Failing after 10s
CI/CD (.gitea/workflows/ci.yml):
- Lint: ruff + mypy on every push/PR
- Test: pytest with coverage report (175 tests)
- Security: bandit SAST + pip-audit dependency scan
- Build: Docker image verification
sortedcontainers (backend/search.py):
- Replace bisect with SortedList for _sorted_tokens
- O(log n) add() / discard() instead of O(n) insort/pop
- SortedList.bisect_left() for prefix search
- Add sortedcontainers>=2.4.0 to requirements.txt
2026-05-27 22:47:28 -04:00
8055b20e5f
Fix tag filtering to preserve "all" vault filter
2026-05-27 12:08:59 -04:00
e3c25b5b09
Add saved searches with CRUD API and UI sidebar
...
Add extension field to search results and display it
Add active filter badges and save button to search header
2026-05-27 08:39:52 -04:00
aa2c05b05f
Add regex search with highlighted snippet support
2026-05-27 08:15:39 -04:00
7c4f2964eb
Render frontmatter as styled cards in public share view
...
Split search query tokens on word boundaries for accurate inverted-index
matching
2026-05-26 22:16:21 -04:00
8fdcdaf412
Add search toggles, path filters, and find/replace functionality
2026-05-26 13:35:38 -04:00
775722f5d4
Switch inverted index from stale check to incremental updates
...
Register a hook with the indexer so that file add/remove events
incrementally maintain the inverted index, removing the need for
periodic staleness checks and cooldowns. Rebuild the index once on
startup via init_inverted_index().
2026-05-26 12:37:59 -04:00
b38f3f16e4
Coalesce index generation increments and add rebuild cooldown
2026-05-26 11:42:47 -04:00
84d3ad0e90
feat: add ext: operator for file extension filtering in advanced search
...
- Add ext: operator support to query parser in backend and frontend
- Update search documentation in README and help modal with ext: examples
- Parse ext: operator to extract file extension filter (strips leading dot, converts to lowercase)
- Filter search candidates by file extension in advanced_search function
- Add ext chip display in search UI alongside existing tag/vault/title/path chips
- Update API documentation and function
2026-03-31 13:41:07 -04:00
b40fcae62f
Add advanced search engine with inverted index, thread pool execution, configuration API, and comprehensive diagnostics
2026-03-23 13:21:20 -04:00
e171a0dc35
Add advanced TF-IDF search with autocomplete, query operators, facets, pagination, and accent normalization
2026-03-23 12:09:46 -04:00
d311a09527
Implement multi-stage Docker build with security hardening, add health check endpoint, optimize in-memory search with O(1) wikilink lookup, extract inline tags from markdown content, and enhance documentation with architecture diagrams and performance metrics
2026-03-22 19:03:34 -04:00
b73aa19c51
Add file deletion endpoint with multi-tag filtering support and redesigned editor UI with icon-only buttons
2026-03-21 22:42:55 -04:00
e76e9ea962
first commit
2026-03-21 09:52:44 -04:00