From my experience the thing that confuses non-technical users is the (lack of the) partial search. People got used to real-time partial search, especially on mobile devices.
It is a huge show-stopper for them to type an extra asterisk at the end of the term. Also not being able to search for substrings within a word.
This is just not intuitive for non-technical people.
No doubt that the current search implementation is a powerful tool, but if we want to target less technical users and I wish we do since Joplin is a really awesome and outstanding product we need to support âeasyâ searching, just out of the box.
Fuzzy search with the spellfix extension of SQL wonât support this use case.
Fuzzy matches are based on edit distance. Two words are similar if they can be transformed from one to the other with a minimum number of edit operations (removal, insertion, or substitution of a character in the string).
Eg. xpresso and espresso are 2 edit distance apart. (Replace x with s and insert e at the front)
But words that have large edit distances wonât be matched by a fuzzy search.
I think what @hunhejj expects is to type âpsyâ and have it match to âpsychoâ âpsychiatryâ and even âpsychotomimeticâ.
And this can be done by simply appending a â*â at the end of all search terms by default.
So if you search for psy, the search will actually be for psy*.
Maybe we can exclude this behavior from quoted string. So "psy" wonât have any * appended to it.
This may cause a problem if you have a large set of notes. Suppose you want to search for psy. But if the search is triggered the moment you type p, a large number of search results will be generated (all the words beginning with p). If the search runs asynchronously, there may not be a problem, otherwise I think the app will hang.
What do you think about this, @naviji?
Yes, ideally I expect that typing 'berry' should show me the note containing 'RaspberryPi'. Or at least 'rasp' should resolve to 'RaspberryPi' if searching for a substring remains impossible.
I apologize in advance for necro-posting, but I think this is still a good idea:
I'm new to Joplin (Evernote refugee, Joplin supporter) and I was bitten by exactly this problem. I couldn't remember how to spell "astigmatism", so I typed astig and nothing happened. Then I hit Return. Still nothing.
But... if I know about regex's and type astig* (without a Return), I immediately get my page. That's great.
I understand completely about unbounded lookups freezing Joplin. But may I offer this:
If the current search string isn't found and the user presses Return, run the search as if they had typed search-string* as a last-ditch measure.
If the string truly isn't found, the display remains the same (no results); if the string is present, the results will appear and everyone will be happy.