Page MenuHome

Fuzzy search does not match simple substrings.
Closed, ResolvedPublic

Description

System Information
Operating system: Linux
Graphics card: Intel

Blender Version
Broken: 2.91, 2.92 (Possibly since https://developer.blender.org/D8825)
Worked: 2.90

Short description of error

Searching for properties used to match all available names that contained the search term.

For example, searching "head", "character", or "model" would match "SomeCharacterModelHead".

As of Blender 2.91, it longer does this.

Personally, I find the current behaviour much less predictable, and thus much less useful. I can notice typos and fix them if necessary, but I can't always recall the entirety of a multiple-part name if the fuzzy search doesn't return it right away.

The main advertised benefit of a fuzzy search is that it can search from misspellings and typos. But since the artist's the one who usually named the objects in the scene, and since they can easily correct typos anyway, this benefit is of questionable use.

And in order to try to accommodate easily correctable user errors, we now not only get a large number of false positives, but we've also broken searching for correct spellings that IMO totally should work.

This has actually been a pretty major usability regression for me, especially since the unique parts of my objects' names tend to be at the end or in the middle of their names, where fuzzy search nearly always fails. That means that I have to search from the start of the name, which is usually the most generic part and thus returns half of the objects in the entire scene as false positives, which in turn means that I end up having to remember the exact name of the object, thus completely negating the "fuzzy" part of "fuzzy search".

It's easier to fix a typo than it is to sort through a long list of false positives or remember the exact name of an object when fuzzy search inevitably fails for a simple substring search term.

2.90, searching "head" returns "SomeCharacterModelHead", as expected:

2.91 and 2.92, searching "head" does not return "SomeCharacterModelHead". "Character" and "model" don't either, which means that the only viable search terms are the ones beginning with "Some"— Which, even without the mess returned by fuzzy search, would already likely return the largest number of false positives:

IMO predictability is important to usability, and using an opaque algorithm hurts that. If we can't predict how the search algorithm is going to behave, and if it fails to behave as expected with simple and entirely reasonable search terms, then we cannot quickly derive search terms to find the property we want.

Exact steps for others to reproduce the error

Search for nearly any substring of any property's name, or search for "head", "model", or "character" in .objects["Cube"].modifiers["SearchHere"].object in the attached file:

Event Timeline

Will (WCN) updated the task description. (Show Details)Mar 4 2021, 4:19 PM
Falk David (filedescriptor) changed the task status from Needs Triage to Confirmed.Mar 8 2021, 10:07 AM

I can confirm this on the 2.92.0 release, but not in the latest master. I think rB116cda65a might be the commit that fixed this. @Jacques Lucke (JacquesLucke) Do you know the commit(s) that resolved this? They should probably be added to T85958.

Jacques Lucke (JacquesLucke) claimed this task.

I think this was probably broken by rB2a24b3aaf4c846a5d98f783fef69946584865df9 and was fixed by the recent introduction of fuzzy search in this input field. Not sure if rB116cda65a2ca1c346c057739ee03ec6396b1af95 can be considered for the corrective release, because it's not just a bug fix. You can add it as a candidate though.
I'm closing this, because it is fixed in master.