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
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 subdirectory
bizis in, you’ll still need to go through all of the
baz-level descendants to find the
biztag you want
- As noted above, typing
barbizdoesn’t return anything at all, since Obsidian is not supplying an implicit wildcard between them
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.