<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in FileIndex.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>06053dca2fac9a1da4eb1accf8c2488942da5d2a - SearchIndex: remove write side effect from retrieveRow()</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#06053dca2fac9a1da4eb1accf8c2488942da5d2a</link>
        <description>SearchIndex: remove write side effect from retrieveRow()retrieveRow() padded the index file when the requested RID was beyondthe current length. This was an optimization for subsequent changeRow()calls, but changeRow() already handles padding on its own. The sideeffect was also inconsistent with retrieveRows() which is a pure read.Added a cross-index integration test verifying RID consistency acrossentity, token, frequency and reverse indexes when multiple entitiesshare tokens.

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Fri, 10 Apr 2026 19:06:30 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>9369b4a991666bc911474806b106d8958e79f4c1 - SearchIndex: rector, phpcs, type hint fixes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#9369b4a991666bc911474806b106d8958e79f4c1</link>
        <description>SearchIndex: rector, phpcs, type hint fixes

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Wed, 08 Apr 2026 18:30:08 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>db8be586414d0dc05ca5131baddfa84f08c55520 - SearchIndex: review fixes &#8212; auto-save MemoryIndex, cast TupleOps counts, style cleanups</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#db8be586414d0dc05ca5131baddfa84f08c55520</link>
        <description>SearchIndex: review fixes &#8212; 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

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Wed, 08 Apr 2026 17:50:08 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>21fbd01b3c3eea88b767376b7b158f31f0f63127 - SearchIndex: add integrity checking to Collection architecture</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#21fbd01b3c3eea88b767376b7b158f31f0f63127</link>
        <description>SearchIndex: add integrity checking to Collection architectureAdd checkIntegrity() to AbstractCollection and DirectCollection thatverifies paired indexes have matching line counts (token==frequency,entity==reverse, entity==token for direct collections). ThrowsIndexIntegrityException on the first inconsistency found.Add Countable interface to AbstractIndex with count() implementationsin MemoryIndex and FileIndex. Add Indexer::checkIntegrity() andIndexer::isIndexEmpty() to orchestrate checks across all collections.Update infoutils.php to use the new Indexer API instead of the oldFulltextIndex/MetadataIndex classes.Fix range(1, 0) bug in three places that produced [1, 0] instead ofan empty array when split-by-length indexes were empty.

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Tue, 07 Apr 2026 16:09:22 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>83b3acccb42578eaa33f84e6b13612436320090b - SearchIndex: rewrite Indexer to use Collection classes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#83b3acccb42578eaa33f84e6b13612436320090b</link>
        <description>SearchIndex: rewrite Indexer to use Collection classesReplace the intermediate #2943 classes (FulltextIndex, MetadataIndex)with the new Collection-based architecture. The Indexer is now a thinstateless 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(&apos;page&apos;) 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

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Mon, 06 Apr 2026 10:31:11 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>c66b5ec65fd5aa2f1037d2be542b49297f3aac0e - SearchIndex: rewrite Lock as static registry with reference counting</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#c66b5ec65fd5aa2f1037d2be542b49297f3aac0e</link>
        <description>SearchIndex: rewrite Lock as static registry with reference countingReplace the instance-based Lock class with a static registry thattracks held locks per-process with reference counting. This solvesthree problems:- Split indexes (w3, w4, ...) share a single lock name and now  coordinate naturally via the registry- Multiple callers can acquire the same lock without conflict- Indexes enforce their own writability through lock()/unlock()  methods on AbstractIndexThe Lock registry manages both the filesystem lock (mkdir) and thein-process tracking. The first acquire creates the directory, subsequentacquires increment the refcount. Release decrements, and only removesthe directory when the count reaches zero.Note: I am not sure if implementing this as a static object is a greatidea or if we should pass an instance through the collection to theindexes...

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Sun, 05 Apr 2026 17:42:37 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>fb5311ecf4ea7daf313d35f457dbe4b83bc2b788 - SearchIndex: RID cache should not be static</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#fb5311ecf4ea7daf313d35f457dbe4b83bc2b788</link>
        <description>SearchIndex: RID cache should not be staticA static var interferes when the same class is instantiated multipletimes

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Thu, 30 Oct 2025 13:21:13 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;gohr@cosmocode.de&gt;</dc:creator>
    </item>
<item>
        <title>596d5287d7a816d606ef4153ef9e0f4704bf8f73 - Working fulltext collection and search</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#596d5287d7a816d606ef4153ef9e0f4704bf8f73</link>
        <description>Working fulltext collection and searchThis finalizes the FulltextCollection and FulltextCollectionSearchclasses. Proper locking is implemented, tests have been enhanced.It should be possible to reimplement the page full text search on top ofit.

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Thu, 11 May 2023 10:55:00 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>7fcedc39d164da3013a88e9ad6660009940e851b - Indexes can now be opened in readonly mode</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#7fcedc39d164da3013a88e9ad6660009940e851b</link>
        <description>Indexes can now be opened in readonly mode

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Tue, 09 May 2023 19:32:34 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>9f63f003f1342f30f2226786546a29e25d1b79ee - add method to retrieve multiple rows at once</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#9f63f003f1342f30f2226786546a29e25d1b79ee</link>
        <description>add method to retrieve multiple rows at once

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Mon, 08 May 2023 17:01:16 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>03a35633c932eca1b7b0d373d08b9140884a0ebe - added method to search an index by regular expression</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#03a35633c932eca1b7b0d373d08b9140884a0ebe</link>
        <description>added method to search an index by regular expression

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Mon, 12 Sep 2022 16:41:04 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>dec26820989745ccc5f6df0b41f772b9066e3584 - retrieveRow needs to pad the index, too</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#dec26820989745ccc5f6df0b41f772b9066e3584</link>
        <description>retrieveRow needs to pad the index, too

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Wed, 08 Dec 2021 19:12:41 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>8ed350114c28d737f70b07d31d3945e1fab55bb9 - better method names</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#8ed350114c28d737f70b07d31d3945e1fab55bb9</link>
        <description>better method names

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Wed, 08 Dec 2021 16:47:13 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>d6396b6d927e3ff373c0aed3927ae61eaca8d537 - we need the same access methods in both index types</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#d6396b6d927e3ff373c0aed3927ae61eaca8d537</link>
        <description>we need the same access methods in both index types

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Wed, 08 Dec 2021 16:41:50 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>9bd7d62f47cb0e2a7651fefd7106f6ac10625281 - Changed IndexAccessor names based on access method not content</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/Index/FileIndex.php#9bd7d62f47cb0e2a7651fefd7106f6ac10625281</link>
        <description>Changed IndexAccessor names based on access method not content

            List of files:
            /dokuwiki/inc/Search/Index/FileIndex.php</description>
        <pubDate>Wed, 08 Dec 2021 15:55:52 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
</channel>
</rss>
