Search v3 — browser test run

PR #3791 · mode lanes + keyword relevance ordering · ishwor/frt-2388-marketplace-ui-feedback

Driven against the dev server at localhost:3000/en/search/v3 on the live Typesense index (2,668,373 docs). 1440×900 unless noted. Dev overlays hidden by injected CSS. Console clean apart from one FontAwesome preload warning.

Mode lane behaviour

01Initial centered dock open png
Pre-first-search. Mode defaults to Smart.
Initial centered dock
02Mode dropdown — Refine removed open png
a11y tree lists exactly two options: Smart and Basic.
Mode dropdown — Refine removed
03Auto-detect → Basic open png
Single word coffee.
pill reads ✦ Basic
Auto-detect → Basic
04Auto-detect → Smart open png
Descriptive phrase.
flips back to ✦ Smart
Auto-detect → Smart
05Smart results — mode locked open png
button[aria-label="Search mode"]null
Smart results — mode locked
06New search split button open png
Left half keeps the lane; dots pick one.
New search split button
07Picked Basic → empty dock open png
URL reset, input cleared, Basic carried over
Picked Basic → empty dock
08Manual pick beats auto-detect open png
The modeTouched guard.
stays ✦ Basic
Manual pick beats auto-detect
09Basic results open png
?query=coffee&mode=basic, 2,043 results
Basic results
10Mobile — label hidden open png
label display:none; split button still tappable
Mobile — label hidden
11Example prompt overrides Basic open png
Chip clicked while in Basic.
derives to ✦ Refine; no mode=basic in URL
Example prompt overrides Basic
12Follow-up refines open png
same query, 2 filter chips added, 702 → 611
Follow-up refines

Mode label restyle — not a box, hover explains it

13Mode label — box removed open png
Was a bordered, padded, rounded-full pill that read as a button.
border-width: 0px, transparent background, cursor: default; a11y tree reports generic, not button
Mode label — box removed
14Hover explains Basic open png
tooltip “Plain keyword match”; name Basic, hint via aria-describedby — announced once
Hover explains Basic
15Keyboard focus explains Refine open png
Opened by focus, not pointer.
tooltip “Narrow the current results” — reachable without a mouse
Keyboard focus explains Refine

15 searches across different areas

How to read these: all 15 ran in Basic, the lane the new relevance ladder affects. “page-1 good extensions” counts how many of the top 10 sit in a weighted class (≥ 3) with the ladder versus Typesense's default ordering. The ladder improved 12/15 and regressed none — but two queries expose structural limits, flagged in amber.
Q01coffee — food & drink open png
Top 5: coffeevilleusa.com coffee3.bg coffee4you.bg coffeeatwork.co.de coffee-at-work.co.de
tie-break order held (no class rises inside a text-match tier). 2,043 results · page-1 good extensions 6/10 vs 2/10 unsorted
coffee — food & drink
Q02bank — finance open png
Top 5: bankquant.com bankxpress.de bankbps.eu bank0mat.cc obank.de
tie-break order held (no class rises inside a text-match tier). 4,817 results · page-1 good extensions 9/10 vs 5/10 unsorted
bank — finance
Q03clinic — healthcare open png
Top 5: clinic24.de clinicus.co.de clinictools.co.de clinicexpert.co.de declini.com
tie-break order held (no class rises inside a text-match tier). 2,315 results · page-1 good extensions 7/10 vs 4/10 unsorted
clinic — healthcare
Q04immobilien — real estate (DE) open png
Top 5: immobilien8.de immobilien6.de immobilienahlen.de immobilien-ahlen.de immobilien4you.co.de
tie-break order held (no class rises inside a text-match tier). 3,797 results · page-1 good extensions 9/10 vs 7/10 unsorted
immobilien — real estate (DE)
Q05legal — professional services open png
Top 5: legalup.co.de legal49.bg legal500.co.de legal365.bg legalq.de
tie-break order held (no class rises inside a text-match tier). 1,584 results · page-1 good extensions 6/10 vs 1/10 unsorted
legal — professional services
Q06solar — energy open png
Top 5: sol.ar solarjalousien.de solar-jalousien.de solarnipaneli.bg solarni-paneli.bg
tie-break order held (no class rises inside a text-match tier). 3,771 results · page-1 good extensions 5/10 vs 5/10 unsorted
solar — energy
Q07studio — creative open png
Top 5: studio3.co.de studioz.co.de studioz.bg studio-z.bg studio-z.co.de
!Ladder can't help: the whole top text-match tier is bulk co.de/bg, so there is nothing better to promote into it. 13,536 results · page-1 good extensions 3/10 vs 3/10 unsorted
studio — creative
Q08fitness — sport & wellness open png
Top 5: fitness666.com fitnesswahn.de fitness5gym.com fitness001.online fitnesse.de
tie-break order held (no class rises inside a text-match tier). 3,224 results · page-1 good extensions 9/10 vs 8/10 unsorted
fitness — sport & wellness
Q09reisen — travel (DE) open png
Top 5: reisen1.de reisen0815.de reisenbuchung.de reisen-buchung.de reisen-zu-superpreisen.de
tie-break order held (no class rises inside a text-match tier). 2,057 results · page-1 good extensions 10/10 vs 7/10 unsorted
reisen — travel (DE)
Q10cloud — tech infra open png
Top 5: cloud09-postfix-service-outlk-outbound.com cloud3.online cloudmma.tv cloud5.co.de cloudk.de
!Ladder works, result still poor: cloud09-postfix-service-outlk-outbound.com (38 chars) takes slot 1 because extension class ranks above length, beating cloud3.online. 4,119 results · page-1 good extensions 7/10 vs 3/10 unsorted
cloud — tech infra
Q11academy — education open png
Top 5: academyvn.com AcademyLanguage.com academyuniformsltd.com academyx.co.de facademy.de
tie-break order held (no class rises inside a text-match tier). 4,183 results · page-1 good extensions 9/10 vs 6/10 unsorted
academy — education
Q12logistik — logistics (DE) open png
Top 5: logistikgroup.de logistikverbund.de logistikspedition.de logistiktransport.de logistik-spedition.de
tie-break order held (no class rises inside a text-match tier). 379 results · page-1 good extensions 10/10 vs 10/10 unsorted
logistik — logistics (DE)
Q13fashion — retail open png
Top 5: fashionwhizz.com fashion77bet.com fashion5.co.de fashionbyema.bg fashion1.de
tie-break order held (no class rises inside a text-match tier). 2,704 results · page-1 good extensions 8/10 vs 6/10 unsorted
fashion — retail
Q14kanzlei — law (DE) open png
Top 5: kanzlei-verl.de kanzlei-troisdorf.de kanzleisachs.co.de kanzlei-sachs.co.de kanzlei-ulrich-mann.co.de
tie-break order held (no class rises inside a text-match tier). 302 results · page-1 good extensions 7/10 vs 5/10 unsorted
kanzlei — law (DE)
Q15crypto — web3 open png
Top 5: crypto6.cc crypto9.life crypto030.online crypto888.club cryptom.net
tie-break order held (no class rises inside a text-match tier). 2,930 results · page-1 good extensions 6/10 vs 3/10 unsorted
crypto — web3

15 phrases through the embedding path

What this tests: the Smart lane — each phrase is embedded via the app's own EmbedSearchQuery BFF endpoint (256-dim), then run as the exact hybrid query production uses (k=100, alpha=1.0, distance_threshold=0.5, no sort_by). Multi-word only; most phrases share no literal token with a good result. 0 embed failures, 0 empty result sets, 12/15 fully semantic page 1.
#phrasefoundembedvec distancepage-1 composition
1cozy neighbourhood coffee roastery2891644ms0.36–0.4184all 24/24 vector-matched
2trustworthy private wealth advisor711049ms0.397–0.4392all 24/24 vector-matched
3modern dental practice for families1,063239ms0.3626–0.4074all 24/24 vector-matched
4makler für wohnungen in münchen1,055224ms0.2912–0.3204all 24/24 vector-matched
5boutique law firm for startups2,093165ms0.4614–0.492414 vector then 10 keyword-only backfill (e.g. boudoirboutique.de spoiledconsignmentboutique.com woll-boutique-lilienthal.de)
6rooftop photovoltaic installation service138180ms0.3502–0.419all 24/24 vector-matched
7minimal photography studio brand202173ms0.3043–0.3444all 24/24 vector-matched
8personal training and strength coaching1,689158ms0.2988–0.3847all 24/24 vector-matched
9last minute flight deals to asia3,926144ms0.4223–0.487714 vector then 10 keyword-only backfill (e.g. last30geng45.cc treeserviceglastonbury.com vastelasten.nl)
10managed kubernetes hosting platform211158ms0.3581–0.4205all 24/24 vector-matched
11online courses for young children59,165206ms0.3989–0.4587all 24/24 vector-matched
12same day parcel delivery across europe834154ms0.3383–0.4223all 24/24 vector-matched
13sustainable womens clothing label265152ms0.3862–0.4377all 24/24 vector-matched
14handcrafted furniture from local wood56164ms0.3987–0.4531all 24/24 vector-matched
15self custody bitcoin wallet app1,391141ms0.4716–0.49342 vector then 22 keyword-only backfill (e.g. selflove.co.de screenself.me self.ac)
P1cozy neighbourhood coffee roastery open png
Top 6: cafe-buch.de readbrew.com busybrew.com kaffeeröstung.de northernbrew.com cafecorner.de
289 results, all 24 on page 1 vector-matched. kaffeeröstung.de and cafe-buch.de share no token with the phrase — matched by meaning, across languages.
cozy neighbourhood coffee roastery
P2makler für wohnungen in münchen open png
Top 6: muenchenmietwohnung.de wohnung-muenchen.de muenchenmietwohnungen.de wohnung-in-muenchen.de makler-muenchen.de muenchner-makler.de
1,055 results, fully vector-matched. German phrase, umlaut folded (münchenmuenchen); every hit on-intent.
makler für wohnungen in münchen
P3self custody bitcoin wallet app — worst dilution open png
Top 8: notyourkeysnotyourcoins.de satoshiwallet.de then selflove.co.de screenself.me self.ac selfiebardfw.com self-care.co.de selfmania-beratungundagentur.de
!Only 2 of 24 hits cleared the 0.5 distance threshold. Both are excellent. The other 22 are keyword-only backfill on the token “self”, all tied at rank_fusion_score 0 — irrelevant to the intent.
self custody bitcoin wallet app — worst dilution
P4last minute flight deals to asia — strong head open png
Top 6: flug-lastminute.de flyasiana.de lastminude.de asiaholidays.de asiatickets.de lastminutewelt.de
3,926 results; positions 1–13 are genuinely on-intent semantic matches.
last minute flight deals to asia — strong head
P5…and its junk tail open png
Positions 16–18: last30geng45.cc treeserviceglastonbury.com vastelasten.nl
!Where the vector arm stops (14 hits), infix keyword matching backfills: “last” inside glastonbury and vastelasten. Same page, same query.
…and its junk tail
P6managed kubernetes hosting platform open png
Top 6: metahost.de projecthosting.de cloudhostingservice.de dynastack.com hovernode.com cloudyne.com
211 results, fully vector-matched. “kubernetes” appears in no hit — dynastack.com / hovernode.com come from the concept, not the string.
managed kubernetes hosting platform
P7handcrafted furniture from local wood open png
Top 6: kunstvollholz.de handbemalte-moebel.de holzunikate.de möbelwerk.de holzmoebelwerk.de die-moebel-werkstatt.de
An English phrase returning German domains with zero shared tokens (Holz = wood, Möbel = furniture). The clearest evidence the embedding path is doing the work.
handcrafted furniture from local wood