Search functionality in Joplin

Many thanks for your detailed reply!

  1. Include note path in search
    For example, there is a note about the "sum" function in the "software \ office \ Excel" path. When searching with "office Excel sum", you can quickly find the note without using the "notebook" syntax for searching.
  2. When searching, the sidebar notebook only displays the search results. When clicking on one of the notebooks, only the search results from that notebook are displayed.
    @MartaLC
1 Like

That's one of the most important feature a note taking app should have.

I practiced Onenote for at least 15 years and that was the reason I keep this solution for all my notes (professional and personal). I moved to Joplin for my professional notes because I've migrated to a full Linux desktop and for security reasons.

  • Large Scope

Even if you organize your notebooks and notes you have to be able to find rapidly a note or a notebook with its name. The scope of the search engine must be as large as possible: Notebooks and/or Note title and/or Note content

  • Move from search engine results to Notebooks/Notes structure

That's the trap Onenote has fallen in and never goes out. If you use the search engine, you are stuck in the search results and you can't return to the Notebooks/Notes structure. An example: You search "Flyer" and you have the list of all notes with the word "Flyer" on it. Once you find the note you're searching it's not possible to go back to the Notebooks/Notes structure to navigate through the other Notes in "communication documents" Notebook the "Flyer" Note is in for example.

2 Likes

Played around with the setup for a plugin for a couple more hours. I now have:

  • A standard Joplin plugin development setup
  • Using RSPack instead of Webpack for much faster builds
  • A webview in a panel
  • A second entry point containing the code for that webview
  • the webview's UI is being rendered with React
  • I've got a TS-typed RPC wrapper around postMessage that lets me send async requests between the webview and the plugin
  • and I've proven I can send a request from the panel to the plugin, get a response back, and update the React UI

I think that's everything I need to be able to build out a reasonable VS Code-style search UI at this point.

This is still not the highest priority thing I'm dealing with, but I'm going to keep working on it when I can find time.

3 Likes

It would be nice to be able to save searches to be run with a single click. This way I could have search that I can quickly run to find my favorites. Yes there are plugins but the problem with plugins is they don't work on all platforms and I use most if not all the platforms.
Thanks.

This recent plugin addresses some of the features mentioned in this post, if anyone wants to give it a try. While it is primarily an (inline) tag search system (which affects its design), it can be configured to search among all words in the text (see Tips), both as complete words and as word segments. It has a UI, displays all found locations in a panel, and supports saved search queries, sorting of search results, and toggling checkboxes, among others.

yes, sorting the search results by different fields like notebook, date, title and so on will be power feature

also "search saves" for quick searching

1 Like

Glad you asked, because I'm an intensive user of Joplin.
Usually I choose the PC to write large texts in Joplin, while the phone is enough to find and capture short notes. Using search, I usually find what I look for, even though sometimes it does not work. Some of the results remain missing, I don't know why.
When I find the note, I scroll to find the sought word. On Android they are highlighted, but not on the PC.
Then, I look for the folder where the note is located, in order to add additional notes besides it. This works on the PC, where clicking on the folder name above the note, opens its location on the folders tree. Unfortunately, this does not work on Android, and I spend a precious time to locate the parent folder.

I'm very excited to report that after another couple sessions of hacking on the plugin code, I now have a working plugin that can do search and display each per-note hit on its own result line with highlighting of the matched text!

Still doing some fiddling around with the search behavior, and I'll have to figure out how to manage hiding and showing the webview panel on command, but this is pretty much what I want to have!

I'll try to get the current WIP cleaned up and published in the near future!

Published! Don't know how long it takes for the Joplin plugin repository to scrape NPM and update, but here's the repo for my plugin:

I'm also sure there's a ton of other search config options that could be added, but this would do for starters.

9 Likes
  1. Can the search results be displayed in a notebook structure?
  2. Can the search results display the path where the notes are located?
  3. Can the search scope include the path where the note is located, in addition to the note title and body text?
    @acemarke
1 Like

Thanks for starting this thread. Even just reading through other people's issues/ideas is teaching me how to use the existing app better. I'm sure any improvements will be well received too.

My biggest issue is that I forget about ctrl-p and have a tenancy to click on the search box because it's more visible

@s4j4 and @acemarke This discussion really belongs in a new thread. The one you are posting on is about the existing search feature.

The plugin is great, though! Thanks for creating it. Perhaps @moderators could split this convo off into a new thread.

Neat plugin! Here's what I like about it compared to Goto Anything:

  • Shows all matches inside notes (sometimes many more than Goto Anything)
  • Can show many more notes at once compared to the overlay
  • Collapsible notes afford hiding irrelevant matches
  • Multiple notes can be visited without having to redo the search, like the built-in search bar

Here are some feature requests:

  1. Can the search bar be focused upon showing the panel?
  2. If the above is too invasive, can a keyboard shortcut be added to focus the search bar?
  3. Can a plugin settings page option be added to preserve search results when hiding the panel?
  4. Can clicking a note's result line scroll to where it's located in the note, like how HTML anchors work?

This post, like the one it replies to, should be moved into its own thread in the Plugins category.

1 Like

That's a nice plugin idea. There are some features which should be added and it would be super.

  1. I try to remember to click All notes in NOTEBOOKS, click, and type in search box of the lower section
  2. search is quick, and responsive.
  3. if the item queried is not in the note title, the note title would be helpful and the notebook title as well

P.S. after reading other posts, I now understand and like the Goto anything tool.
I am new to Joplin, one month anniversary.
P.P.S. I went to: Searching | Joplin and as a user I could not make head or tails on how this page instructed me on searching. I need a very basic step by step. Click here, type, these are the results you will get. Use an actual screen pic of Joplin in as many of these steps as possible.

When I first looked at this help page a month ago, it was not instructive. Too techie and I could not orient it to what I was seeing in Joplin desktop or android.

Now, after looking again today, it contains great information and a wide range of sorting. If you could make the choices a menu selection rather than having to type commands, the menu would be a huge improvement.

1 Like

One search improvement would be predefining the search context.

My search usually starts by excluding a notebook (which is a big archive) and by checking note titles first.
I always have to write "-notebook:x title:" while, in the background, the search has already started, which is slow and annoying.

This could be improved by remembering the last search query (it does, but it is easily lost when clicking somewhere else) or better by starting with a predefined search query or context. This could be a simple string in the settings (empty by default). What do you think?

Thank you for your suggestions!

Thanks for your feedback. Indeed, having possibility to access the history of recent search queries or favourite queries could be a useful improvement.

I only use basic search and I think it should be the default. If I enter a piece of text and it's in a note, even within another word, I want that note to show up.

2 Likes

By the way, the search experience in Obsidian is perfect. Just copy that. :slight_smile: It searches everywhere, exact, unanchored, splits search terms at spaces and previews and highlights search results.

2 Likes