Use case or problem
I noticed that in 0.9.21, fuzzy matching was implemented, but IMO it’s not fuzzy enough . After bringing this up here, it was deemed better to open a new feature request for this so here I am!
To quote myself directly, this is an example that I gave:
For example, say I have a tag
#some/tag/hierarchy
, ideally I’d like to see results returned if all I typed were#tagarchy
. This is how systems such as OmniFocus behave, if you’re familiar with that tool.
IMO, currently tag search isn’t the greatest. Let’s say you have a lot of nested tags under one parent; if you don’t remember the full path but you do remember one of the tag’s parents, finding it by typing just the parent and the sub-tag might not produce the right results, and worse, might not return results at all. Let me further explain.
Say we have a more exaggerated nesting structure for a tag, like #foo/bar/baz/biz
, where the bar
and baz
parents have many descendants, and even let’s say that biz
is in several of the parent tags (and there are many other parent tags that I’m not going to type out for this example). We run into issues trying to find that tags such as:
- Typing just the tag that I want,
biz
, might return too many results - Typing one of the parent tags (say
bar
) and you don’t remember exactly which subdirectorybiz
is in, you’ll still need to go through all of thebaz
-level descendants to find thebiz
tag you want - As noted above, typing
barbiz
doesn’t return anything at all, since Obsidian is not supplying an implicit wildcard between them
Proposed solution
I think that Obsidian should attempt to match anything it can based on what is given by the user, with a “ranking” algorithm that matches the text supplied from the closest match it can find to the most lenient match it can find. Some example applications that do things like this are:
- OmniFocus’ tag system
- Basically any IDE or code editor that has an autocomplete functionality (I’m thinking of VSCode when I am typing this up)
Current workaround (optional)
Currently there isn’t a workaround that I know of - basically when you start typing, you need to know the rest of the tag from then on
Please let me know if you need any additional details about the above! I’d even be happy if this was just a setting to turn on.