- Explore the SearchEngine and related classes in MW, and how they're used in various APIs
- Consider how difficult switching ZObjectStore::searchFunctions() over to it would be
- Examine what kind of results we'd get from it, and how they'd differ from now.
- Feed this back to Product/Design/Engineering to make a decision on whether it's worth doing this work.
Description
Details
Event Timeline
Other idea:
Enhanced Fuzzy Search Method
- Multi-level search conditions with different priorities
- Word-based matching for multi-word searches
- Fuzzy word matching for partial matches
- Maintains all existing functionality
Improved Ranking Algorithm (getEnhancedMatchRate), example:
- Exact matches: 1.0 score
- Starts with: 0.9 score
- Contains match: 0.7-0.9 score (position-based)
- Word-based matching: 0.5-0.8 score
- Fuzzy word matching: 0.4-0.7 score
- Levenshtein distance: 0.0-0.3 score (fallback)
Word Tokenization:
- Splits search terms on spaces, hyphens, and underscores
- Filters out short words (< 2 characters)
- Enables "age range" → ["age", "range"] matching
Change #1184531 had a related patch set uploaded (by Genoveva Galarza; author: Genoveva Galarza):
[mediawiki/extensions/WikiLambda@master] Tokenize search term and aggregate preliminary matches
Change #1185073 had a related patch set uploaded (by Genoveva Galarza; author: Genoveva Galarza):
[mediawiki/extensions/WikiLambda@master] Change no results message and add calls to action
Change #1184531 merged by jenkins-bot:
[mediawiki/extensions/WikiLambda@master] Tokenize search term and aggregate preliminary matches
Change #1185073 merged by jenkins-bot:
[mediawiki/extensions/WikiLambda@master] Change no results message and add calls to action