| #
8788dbbd |
| 06-May-2026 |
splitbrain <86426+splitbrain@users.noreply.github.com> |
Rector and PHPCS fixes
|
| #
db8be586 |
| 08-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
SearchIndex: review fixes — auto-save MemoryIndex, cast TupleOps counts, style cleanups
- MemoryIndex: auto-save dirty data on unlock/destruction to prevent silent index corruption when indexes ar
SearchIndex: review fixes — auto-save MemoryIndex, cast TupleOps counts, style cleanups
- MemoryIndex: auto-save dirty data on unlock/destruction to prevent silent index corruption when indexes are used in tandem - TupleOps::parseTuples(): cast exploded count strings to int - FileIndex::retrieveRow(): document the write-on-read padding behavior - Fix whitespace issues in ApiCore, common.php, Sitemap/Mapper - Update concept.txt to reflect MemoryIndex auto-save behavior
show more ...
|
| #
e1272c08 |
| 07-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
SearchIndex: add backward compatibility wrappers
Add deprecated wrappers for idx_* and ft_* functions that were removed when inc/indexer.php and inc/fulltext.php were replaced by the new Search clas
SearchIndex: add backward compatibility wrappers
Add deprecated wrappers for idx_* and ft_* functions that were removed when inc/indexer.php and inc/fulltext.php were replaced by the new Search classes. These wrappers delegate to the new architecture and ensure existing plugins continue to work.
Deprecated standalone functions: idx_get_indexer, idx_getIndex, idx_lookup, idx_listIndexLengths, idx_indexLengths, ft_pageSearch, ft_backlinks, ft_mediause, ft_pageLookup, ft_snippet, ft_pagesorter, ft_snippet_re_preprocess, ft_queryParser.
Deprecated methods on Indexer: lookupKey, getPages, addMetaKeys, renameMetaValue, getPID, lookup.
Also migrates remaining core callers (Ajax, FeedCreator, ApiCore) to use the new classes directly and fixes a UTF-8 case folding bug in MetadataSearch title lookups.
show more ...
|
| #
6734bb8c |
| 07-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
SearchIndex: rewrite MetadataSearch to use Collection classes
Replace MetadataIndex usage in MetadataSearch with the new Collection/Index architecture. This completes the read-path migration so data
SearchIndex: rewrite MetadataSearch to use Collection classes
Replace MetadataIndex usage in MetadataSearch with the new Collection/Index architecture. This completes the read-path migration so data written by the Collection-based Indexer is read back correctly using TupleOps tuple format.
Generalize FrequencyCollectionSearch into CollectionSearch that works with any AbstractCollection type (Frequency, Lookup, Direct) and handles both split-by-length and non-split index layouts transparently. DirectCollection participates via resolveTokenFrequencies() which maps token RID = entity RID.
Key changes: - AbstractCollection gains isSplitByLength(), resolveTokenFrequencies(), getEntitiesWithData(), and groupToSuffix() with validation - Index groups are now int (0 = non-split, positive = token length) - CollectionSearch provides both addTerm()/execute() for fulltext and lookup() for metadata-style search (exact/wildcard/callback) - MetadataSearch delegates entirely to collection APIs - Shared filterPages() replaces duplicated page filtering logic - All callers updated from MetadataIndex to MetadataSearch - Tests moved to Search namespace with full coverage for new APIs
show more ...
|
| #
0b1bbbbb |
| 06-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
SearchIndex: rewrite FulltextSearch to use FrequencyCollectionSearch
Replace FulltextIndex->lookupWords() with FrequencyCollectionSearch which correctly handles the compact tuple format written by t
SearchIndex: rewrite FulltextSearch to use FrequencyCollectionSearch
Replace FulltextIndex->lookupWords() with FrequencyCollectionSearch which correctly handles the compact tuple format written by the new Indexer.
Introduce QueryEvaluator with typed stack entries (PageSet, NamespacePredicate, NegatedEntry) for RPN query evaluation. NOT wraps its operand instead of computing a universe complement, so AND with a negated operand becomes efficient set subtraction. The full page index is only loaded for standalone negative or namespace-only queries.
Move QueryParser and QueryEvaluator into the new Search\Query namespace along with the stack entry types.
Simplify FulltextSearch to orchestration: parse query, look up words, evaluate, filter, sort. Replace FT_SNIPPET_NUMBER constant with maxSnippets property. Combine ACL/existence/time filtering into a single pass.
show more ...
|
| #
83b3accc |
| 06-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
SearchIndex: rewrite Indexer to use Collection classes
Replace the intermediate #2943 classes (FulltextIndex, MetadataIndex) with the new Collection-based architecture. The Indexer is now a thin sta
SearchIndex: rewrite Indexer to use Collection classes
Replace the intermediate #2943 classes (FulltextIndex, MetadataIndex) with the new Collection-based architecture. The Indexer is now a thin stateless orchestrator that delegates all index work to collections.
Key changes: - Indexer no longer extends AbstractIndex; page name passed to methods - addPage/deletePage/clear use PageTitleCollection, PageFulltextCollection, and PageMetaCollection - New PageMetaCollection replaces separate ReferencesCollection and MediaCollection with a single class that handles arbitrary metadata keys dynamically - Shared writable FileIndex('page') passed to all collections - Logger callback replaces verbose parameter - Methods return void instead of bool - Index classes implement IteratorAggregate for clean data access - Indexer tests consolidated into namespaced IndexerTest.php - All callers updated to new stateless API
show more ...
|
| #
7f394dd6 |
| 05-Apr-2026 |
Andreas Gohr <andi@splitbrain.org> |
Merge branch 'master' into searchIndex-finish
* master: (55 commits) Translation update (pt-br) Bump phpseclib/phpseclib from 3.0.49 to 3.0.50 Update deleted files strict value comparison
Merge branch 'master' into searchIndex-finish
* master: (55 commits) Translation update (pt-br) Bump phpseclib/phpseclib from 3.0.49 to 3.0.50 Update deleted files strict value comparison in auth session check. fixes #4602 Translation update (pt-br) Translation update (pt-br) remove utf8_encode() from authad plugin todo checker action: ignore vendor updated rector and applied it removed another php 7.4 workaround removed an old PHP 5 workaround in HTTPClient remove checks for mbstring.func_overload removed php 8 polyfills ignore HTML validation issue with skipped headline levels declare PrefCookie constant visibility update slika which fixes another php 8.5 deprecation issue fix http tests fix destructuring false returns from changelog functions avoid using null as cache key Fix deprecation warning in UTF8/Conversion ...
show more ...
|
| #
093fe67e |
| 07-Mar-2026 |
Andreas Gohr <andi@splitbrain.org> |
updated rector and applied it
|
| #
9df9f0c8 |
| 27-Oct-2025 |
Andreas Gohr <gohr@cosmocode.de> |
Merge branch 'master' into searchIndex-finish
There were a lot of conflicts to resolve. Not all of them may have been resolved correctly...
* master: (1094 commits) Login accessibility improvemen
Merge branch 'master' into searchIndex-finish
There were a lot of conflicts to resolve. Not all of them may have been resolved correctly...
* master: (1094 commits) Login accessibility improvements Translation update (it) translation update translation update translation update translation update translation update translation update translation update translation update translation update translation update translation update translation update Remove HTML from strings based on title and tagline SECURITY: fix XSS vulnerability. fixes #4512 translation update Fix typos in usermanager English strings Replace hardcoded message by localized string set DOKU_INC in rector ...
show more ...
|
| #
a8f218d4 |
| 15-Mar-2025 |
Andreas Gohr <andi@splitbrain.org> |
API doc block updates
|
| #
0e1bcd98 |
| 15-Mar-2025 |
Andreas Gohr <andi@splitbrain.org> |
increased API version
|
| #
72b0e523 |
| 15-Mar-2025 |
Andreas Gohr <andi@splitbrain.org> |
API: proper access to the current media revision
Even when the revision is explictly given instead of set to 0. See #4419 for ponderings about why this is necessary and a different approach.
|
| #
61d21e86 |
| 15-Mar-2025 |
kuangfio <kuangfionaly@gmail.com> |
Added API endpoint core.getMediaHistory #4147
squashed commits of #4369
|
| #
56bbc10d |
| 17-Dec-2024 |
Andreas Gohr <andi@splitbrain.org> |
init rendering correctly in API
When rendering a page, the ID should be passed.
|
| #
99a3dafa |
| 10-Apr-2024 |
Andreas Gohr <andi@splitbrain.org> |
increase API version for new call, remove unused parameter
|
| #
fb93418d |
| 10-Apr-2024 |
Andreas Gohr <andi@splitbrain.org> |
remove obsolete TODO comment
|
| #
885b0fb0 |
| 21-Mar-2024 |
Anushka Trivedi <21999998+opheliagame@users.noreply.github.com> |
added API core.getMediaUsage
|
| #
d48c2b25 |
| 07-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: code style fixes
|
| #
d1f06eb4 |
| 06-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: ApiCore tests fixed and extended
|
| #
9e6b19e6 |
| 06-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: fix listPages
Not all needed fields are returned by the search callback
|
| #
5bef72be |
| 06-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: getPageHistory is nicer than getPageVersions
|
| #
0eb4820c |
| 06-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: checkPage needs to consider revision
|
| #
b115d6db |
| 05-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: always pass revision as integer
|
| #
7288c5bd |
| 05-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API fix depth handling in listPages
|
| #
58ae4747 |
| 05-Jan-2024 |
Andreas Gohr <andi@splitbrain.org> |
API: initialize responses explicitly
Instead of passing unknown arrays, explicit parameters are passed. Revision handling should now work correctly since we can pass revision=0 but a mtime.
|