zim-desktop-wiki / zim-desktop-wiki

Main repository of the zim desktop wiki project
http://zim-wiki.org
GNU General Public License v2.0
1.93k stars 369 forks source link

Does Zim search scale well? #645

Closed quesada closed 5 years ago

quesada commented 5 years ago

I have 505 files (and a .git folder that bumps that up another 1000)... and the search takes about a second on a modern computer. Is this representative? If we had 10k files, would search be really slow? I'm trying to get away from web apps for that reason, friction.

jaap-karssenberg commented 5 years ago

Zim search is relatively slow at the moment if you do a content search. There is an improvement proposal based on a low level "grep" before parsing text in the notebook.

Searching for index properties (names, tags, links) is optimized using the database and very fast.

-- Jaap

On Thu, Jan 31, 2019 at 10:08 AM Jose Quesada notifications@github.com wrote:

I have 505 files (and a .git folder that bumps that up another 1000)... and the search takes about a second on a modern computer. Is this representative? If we had 10k files, would search be really slow? I'm trying to get away from web apps for that reason, friction.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/zim-desktop-wiki/zim-desktop-wiki/issues/645, or mute the thread https://github.com/notifications/unsubscribe-auth/ABMMHg3QD2lEl-O_09lSnnQVtx9GMSqXks5vIrJ3gaJpZM4ab3df .

quesada commented 5 years ago

Thanks, very good to know. Maybe calling 'the silver searcher' in a pipe (or any of these grep alternatives) would be faster?

Is the improvement proposal coming up in 0.7?

quesada commented 5 years ago

It really is a pity that the search is not faster (SublimeText 'find in files is about 10x faster). Searching from the command line is not ideal because there are headers etc (noise) that a non-zim searcher will not understand.

Discoverability (the index panel, with its alphabetical order) is not a strong point either. So we are in between a rock and a hard place.

quesada commented 5 years ago

Ripgrep seems to be the one to beat. Maybe a plugin that does a system call to rg and displays the information as is now would work great and be a relatively low hanging fruit.

jaap-karssenberg commented 5 years ago

See issue #64