<?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 FulltextSearch.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>8788dbbd585b42284320d64cc932f3c875eab6b2 - &#55358;&#56598; Rector and PHPCS fixes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#8788dbbd585b42284320d64cc932f3c875eab6b2</link>
        <description>&#55358;&#56598; Rector and PHPCS fixes

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Wed, 06 May 2026 19:32:03 +0000</pubDate>
        <dc:creator>splitbrain &lt;86426+splitbrain@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>4f29a5b95f4d435233ea7be53601adafa274beb7 - SearchIndex: fix comment position</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#4f29a5b95f4d435233ea7be53601adafa274beb7</link>
        <description>SearchIndex: fix comment positionsingle line comment moved to the wrong line on reformatting

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Wed, 06 May 2026 19:04:43 +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/FulltextSearch.php#9369b4a991666bc911474806b106d8958e79f4c1</link>
        <description>SearchIndex: rector, phpcs, type hint fixes

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.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>1148921de6af6909f19cb5b30b698d0f27d7751e - SearchIndex: unify CollectionSearch API and optimize search pipeline</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#1148921de6af6909f19cb5b30b698d0f27d7751e</link>
        <description>SearchIndex: unify CollectionSearch API and optimize search pipeline- Remove separate lookup() API from CollectionSearch. All searches now  use addTerm()/execute() with a single unified pipeline.- Add matches() predicate to Term using efficient string functions  (===, str_starts_with, str_ends_with, str_contains) instead of regex.- Add caseInsensitive() support on CollectionSearch and Term for  metadata/title searches where indexed values preserve case.- Remove callback support from MetadataSearch::lookupKey() &#8212; the only  real usage (case-insensitive substring) is replaced by  caseInsensitive() + wildcards.- Remove min-length validation from Term. Add Tokenizer::isValidSearchTerm()  for callers that need it (FulltextSearch, Indexer::lookup).- Optimize execute() from 4 group passes to 2: scan tokens + resolve  frequencies in one pass per group, batch entity name resolution, then  populate Terms.- Store full match detail in Term: entity &#8594; token &#8594; frequency. New  accessors getMatches(), getEntityTokens(), getEntityFrequencies()  derive different views from this single data structure.- Term no longer used as scratch pad by CollectionSearch. Index-internal  data (token IDs, entity IDs) stays local to execute(). Terms receive  only final resolved results.- Use title from search results in MetadataSearch::pageLookupCallBack()  instead of re-fetching via p_get_first_heading().- Update concept.txt documentation.

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Wed, 08 Apr 2026 16:51:16 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>6734bb8cef71e8b4af23e627d4db5430304d55a2 - SearchIndex: rewrite MetadataSearch to use Collection classes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#6734bb8cef71e8b4af23e627d4db5430304d55a2</link>
        <description>SearchIndex: rewrite MetadataSearch to use Collection classesReplace MetadataIndex usage in MetadataSearch with the new Collection/Indexarchitecture. This completes the read-path migration so data written by theCollection-based Indexer is read back correctly using TupleOps tuple format.Generalize FrequencyCollectionSearch into CollectionSearch that works with anyAbstractCollection type (Frequency, Lookup, Direct) and handles bothsplit-by-length and non-split index layouts transparently. DirectCollectionparticipates 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

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Tue, 07 Apr 2026 13:33:54 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>0b1bbbbb7d4e3c531cd255dbf878ce27d5967a0c - SearchIndex: rewrite FulltextSearch to use FrequencyCollectionSearch</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#0b1bbbbb7d4e3c531cd255dbf878ce27d5967a0c</link>
        <description>SearchIndex: rewrite FulltextSearch to use FrequencyCollectionSearchReplace FulltextIndex-&gt;lookupWords() with FrequencyCollectionSearch whichcorrectly handles the compact tuple format written by the new Indexer.Introduce QueryEvaluator with typed stack entries (PageSet,NamespacePredicate, NegatedEntry) for RPN query evaluation. NOT wrapsits operand instead of computing a universe complement, so AND with anegated operand becomes efficient set subtraction. The full page indexis only loaded for standalone negative or namespace-only queries.Move QueryParser and QueryEvaluator into the new Search\Query namespacealong with the stack entry types.Simplify FulltextSearch to orchestration: parse query, look up words,evaluate, filter, sort. Replace FT_SNIPPET_NUMBER constant withmaxSnippets property. Combine ACL/existence/time filtering into asingle pass.

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Mon, 06 Apr 2026 16:01:31 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>05606aeb5f1db9486ee3b62a5840378522c51f00 - fix undefined array in FulltextSearch</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#05606aeb5f1db9486ee3b62a5840378522c51f00</link>
        <description>fix undefined array in FulltextSearchthis was already fixed by 5afd958 on 2021-02-05

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Mon, 29 Nov 2021 05:16:02 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>cc3a3cde95a4a0b4a256109c08f12d3d6227a56a - change MetadataSearch and FulltextSearch to non-singleton</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#cc3a3cde95a4a0b4a256109c08f12d3d6227a56a</link>
        <description>change MetadataSearch and FulltextSearch to non-singletonsingleton is not effective to reduce multiple instantiations, especially for MetadataSearch which is frequently used in ajax call.

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Sat, 26 Sep 2020 01:41:16 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>a32da6dda625a55bd713657b22f3ab332757fca6 - change Index objects to non-singleton</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#a32da6dda625a55bd713657b22f3ab332757fca6</link>
        <description>change Index objects to non-singletonIndexer, FulltextIndex, MetadataIndex uses common directory to store *.idx files, but this does not mean they should be singleton objects to avoid lock confrictions.

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Fri, 25 Sep 2020 07:15:28 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>15f699ac4db38c7098b4ae4cd0782dff13d46637 - replace user errors with exceptions</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#15f699ac4db38c7098b4ae4cd0782dff13d46637</link>
        <description>replace user errors with exceptionsExceptions are better to handle than errors. What I don&apos;t like is thatwe now have an unfortunate mix of return code and exception signallingfor errors. Some methods still return false for errors while othersnow throw exceptions (always returning true otherwise).

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Thu, 10 Sep 2020 15:33:48 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
<item>
        <title>9329b002986cc3f43c18c207dd9d0fdfd0f8a5e8 - change static methods into instance methods</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#9329b002986cc3f43c18c207dd9d0fdfd0f8a5e8</link>
        <description>change static methods into instance methods

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Sun, 02 Feb 2020 13:44:41 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>743c9a28dd4c99f9336a634d173da73f2c7f1e59 - rename PagewordIndex to FulltextIndex</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#743c9a28dd4c99f9336a634d173da73f2c7f1e59</link>
        <description>rename PagewordIndex to FulltextIndex

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Fri, 31 Jan 2020 15:14:06 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>02361d2a8a489d99bde9646525952bf8dff51577 - define getPages() in AbstractIndex instead of PageIndex</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#02361d2a8a489d99bde9646525952bf8dff51577</link>
        <description>define getPages() in AbstractIndex instead of PageIndexgetPages() is inherited to each subclass of AbstractIndex, but MetadataIndex::getPages() will override the inherited method.

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Mon, 20 Jan 2020 12:18:44 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>be5c1ea2da9ce21461b05de9ad624446de1786be - move lookup() to PagewordIndex class, reduce term &apos;Indexer&apos;</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#be5c1ea2da9ce21461b05de9ad624446de1786be</link>
        <description>move lookup() to PagewordIndex class, reduce term &apos;Indexer&apos;make similar MetadataIndex::lookupKey() and PagewordIndex::lookup()

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Sun, 19 Jan 2020 08:12:40 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>46b83514ca215ee33366a5c9f42f7da7812ef9ed - resolve conflictions, CodeSniffer errors</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#46b83514ca215ee33366a5c9f42f7da7812ef9ed</link>
        <description>resolve conflictions, CodeSniffer errors

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Sun, 19 Jan 2020 01:59:48 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>0cba610bea94e5841d211c0d3f57ae96e8ad1379 - rewrite deprecated ft_* functions</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#0cba610bea94e5841d211c0d3f57ae96e8ad1379</link>
        <description>rewrite deprecated ft_* functions

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Tue, 14 Jan 2020 14:05:11 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>86fc72834c9811f103d0b8cc83fd250d506c161f - separate methods into metadata, Pageword, Page index classes</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#86fc72834c9811f103d0b8cc83fd250d506c161f</link>
        <description>separate methods into metadata, Pageword, Page index classes

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Tue, 07 Jan 2020 14:25:05 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>6b6becabab901637e0541d9f2254898b188f156e - bug fix and PHP74 warnings</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#6b6becabab901637e0541d9f2254898b188f156e</link>
        <description>bug fix and PHP74 warningsWarning: Parameter 1 to dokuwiki\Search\MetaSearch::callback_pageLookup() expected to be a reference, value given in /path/to/dokuwiki/inc/Extension/Event.php on line 135

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Sun, 05 Jan 2020 09:35:43 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>677f78a7ff09e4a1003aad73df5a269fc6e9f8ee - move Quicksearch methods into MetaSearch class</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#677f78a7ff09e4a1003aad73df5a269fc6e9f8ee</link>
        <description>move Quicksearch methods into MetaSearch classpageLookup() does not use fulltext index, but metadata index

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Sun, 05 Jan 2020 08:51:56 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>3837ea917fcd3abddc414e549ba7ddfcb7ca8a21 - create QueryParser class</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/inc/Search/FulltextSearch.php#3837ea917fcd3abddc414e549ba7ddfcb7ca8a21</link>
        <description>create QueryParser classprovides convert($query), recert_simple(), and termParser().No needs to pass $Indexer in method&apos;s arguments.

            List of files:
            /dokuwiki/inc/Search/FulltextSearch.php</description>
        <pubDate>Sun, 05 Jan 2020 08:18:03 +0000</pubDate>
        <dc:creator>Satoshi Sahara &lt;sahara.satoshi@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
