<?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 QueryEvaluatorTest.php</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2025</copyright>
    <generator>Java</generator><item>
        <title>1148921de6af6909f19cb5b30b698d0f27d7751e - SearchIndex: unify CollectionSearch API and optimize search pipeline</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Search/Query/QueryEvaluatorTest.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/_test/tests/Search/Query/QueryEvaluatorTest.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>ede4646658cf51245060332d97a319a39c788ea1 - SearchIndex: reorganize and expand test suite</title>
        <link>http://127.0.0.1:8080/history/dokuwiki/_test/tests/Search/Query/QueryEvaluatorTest.php#ede4646658cf51245060332d97a319a39c788ea1</link>
        <description>SearchIndex: reorganize and expand test suiteMove all Search tests from _test/tests/inc/Search/ to _test/tests/Search/to match the dokuwiki\test autoloader convention. Fix namespaces fromtests\* to dokuwiki\test\* so all tests work in isolation.Extract inline test helpers into separate autoloadable mock files:TestDirectCollection &#8594; MockDirectCollection, TestLookupCollection &#8594;MockLookupCollection, TestFrequencyCollection &#8594; MockFrequencyCollection.Rename AbstractIndexTest &#8594; AbstractIndexTestCase to fix PHPUnit warningabout abstract classes with Test suffix.Replace dead xxxRealWord() with proper testWildcardSearch() verifyingexact token matches and frequencies for all three wildcard types.Add testTokenizedPageSearch() using a dedicated test data file. AddtestNoMatchReturnsEmptyFrequencies() which exposed a bug in Term whereuninitialized $tokens/$frequencies caused crashes on zero-match terms.Replace fulltext_query.test.php with modern QueryParserTest in theSearch\Query namespace.Add new test files:- LockTest: acquire/release, reference counting, stale lock override,  foreign lock rejection, releaseAll, independent locks- NamespacePredicateTest: filter/exclude, sub-namespaces, partial prefix  safety, empty sets, score preservation- PageSetTest: intersect, unite, subtract, isEmpty- QueryEvaluatorTest: word lookups, AND/OR/NOT, namespace filtering,  combined queries, partial namespace prefix safetyFix Term.php: initialize $tokens and $frequencies to [] instead of null.

            List of files:
            /dokuwiki/_test/tests/Search/Query/QueryEvaluatorTest.php</description>
        <pubDate>Mon, 06 Apr 2026 16:45:11 +0000</pubDate>
        <dc:creator>Andreas Gohr &lt;andi@splitbrain.org&gt;</dc:creator>
    </item>
</channel>
</rss>
