Page MenuHomePhabricator

Spike: Explore MW's SearchEngine class structure, and whether switching to it from our existing SQL LIKE pattern for label search will help
Closed, ResolvedPublic

Description

  • 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.

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

https://gerrit.wikimedia.org/r/1184531

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

https://gerrit.wikimedia.org/r/1185073

Change #1184531 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] Tokenize search term and aggregate preliminary matches

https://gerrit.wikimedia.org/r/1184531

Change #1185073 merged by jenkins-bot:

[mediawiki/extensions/WikiLambda@master] Change no results message and add calls to action

https://gerrit.wikimedia.org/r/1185073