Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
08142 Interface Minor Always Nov 28, 2021, 10:04 Dec 2, 2021, 14:13
Tester MilanSK View Status Public Platform MAME (Official Binary)
Assigned To Resolution No change required OS Windows Vista/7/8 (64-bit)
Status [?] Closed Driver
Version 0.238 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary 08142: Strange filter results and sort order in the machine list
Description In the main window, when I start typing, search is activated.
I would expect the list displays only machines matching the typed string.
Instead, various machines are displayed, obviously not matching the typed string.
Additionally, they are sorted in weird order.
Steps To Reproduce 1. Install fresh official MAME 0.238 release.
2. Start typing "didaktik gama 89".
Additional Information
Github Commit
Flags
Regression Version
Affected Sets / Systems
Attached Files
png file icon filtering_and_sort_order.png (177,940 bytes) Nov 28, 2021, 10:04 Uploaded by MilanSK
Machine list filtered to "didaktik gama 89"
MilanSK
Relationships
related to 07313Confirmed Search function got worse since mame 0.206. 
Notes
5
User avatar
No.19502
hap
Developer
Nov 28, 2021, 11:02
The list is from best match to worst match, not in alphabetical order.
mp68a and Mikrodator are in it because the company is "Didact AB"

MAME's search is not very good (see related bugreport on searching for "Magic Sword" for example), but this specific search case you reported is not that bad.
User avatar
No.19503
MilanSK
Tester
Nov 28, 2021, 12:18
Would it make sense to add an option for exact match?
Perhaps to implement this type of search (and applying alphabetical sort order on the result) could be a very easy task.
User avatar
No.19511
cuavas
Administrator
Nov 29, 2021, 03:04
It will always favour an exact match over an inexact match.

Even with a different search algorithm, sorting the results alphabetically wouldn’t make sense. Consider what would happen with a search like “nes” – this will match the short name for Nintendo Entertainment System/Famicom perfectly, but it’s also be a perfect partial match for a very large number of systems because it’s a commonly occurring sequence of letters (e.g. it matches “oneshot”, the short name for One Shot One Kill, with a relatively low edit distance). Sorting alphabetically when there are a very large pool of items being searched from tends to put irrelevant results higher.

The search algorithm used to look for exact substring matches. However, besides being very slow, it didn’t work well at all. Searching for “nes” or “neo geo” wouldn’t return anything even close to what the user wanted. The main issue with using edit distance for searching is that some descriptions have huge amounts of disambiguation text in them which causes “magic sword” to have a lower edit distance to “Magic Card (set 1)” than it has to “Magic Sword: Heroic Fantasy (World 900725)” – “sword” and “card” both have “rd” in them, and all the additional stuff at the end of the full description of Magic Sword drives the edit distance up.
User avatar
No.19514
B2K24
Senior Tester
Dec 1, 2021, 18:11
Seems like there's nothing to change here as the way it currently functions has been explained. Someone else can reopen if there's a productive purpose to it.

Closing as no change required.
User avatar
No.19519
Tafoid
Administrator
Dec 2, 2021, 14:13
https://github.com/mamedev/mame/pull/8924 is up for evaluation