Comments (5)
Well, a wildcard search is certainly possible but much, much slower.In your example, we'd need to pick up a, perhaps, a 50K note that starts with "exact" and ends with "string". And every combination between.
Might be appropriate to provide an "Advanced Search" that lets you do things like that I'd not do it to the standard search function as I suspect it would make it unusable.
David
from tomboy-ng.
As per #34, i think search just has to use an index. Searching for non-contiguous words has been the default when not using quotation marks since Alta Vista and continues in things like Spotlight on Mac. And again, case-insensitive and search for all words (without requiring them to be exactly next to each other) is both how old Tomboy works (with survivable performance even with my ... now 16,791 notes) and how modern applications work. Completely offload the work to a proper indexed search and things can fly!
I'd still recommend case-insensitive search which assumes independent words and not a phrase even if it made it completely unusable at my scale. Usability first, and then scale.
from tomboy-ng.
Hmm, Tomboy does not do wildcard search, it just looks for notes that contain both the words mentioned. In either order. So, search term "exact string" will register a hit in a note that says "..and the string is exactly..". Thats relatively easy to implement but will probably require a bit of rework of the search unit.
And indexes ? An index is useful if you have a subset of the content indexed. But if you want to index free form text then your index ends up being substantially bigger than the text. There is some saving by not indexing generic words such as "and; but...". And some benefit in a on disk index because it can be searched faster than the note but the maintenance cost has to be considered.
The meta data structures I currently keep in memory are, sort of indexes. But only index metadata. If memory footprint did not matter we could do all sorts of things .....
from tomboy-ng.
OK, I have checked in code that allows user to search on the exact combination in the edit box OR find notes that contain all the words but not necessarily in that order.
This check-in also fixes a significant problem in the search tools but at the expense of performance. Further research is indicated.
from tomboy-ng.
Just checked in code that speeds up that search by factor of 100, now searches my test note directory of a 100 notes in about 35mS on my 'medium' speed laptop.
from tomboy-ng.
Related Issues (20)
- White selection on dark themes when unfocussed HOT 44
- 0.36a1-1: search interface completely broken HOT 12
- Tomboy-ng icon not displaying in Taskbar Windows 10 HOT 2
- Sync error : "(line 1 pos 1) Root element is missing" HOT 8
- synchronization: add support for automated synchronization with frequency HOT 40
- Export to PDF produces blank file HOT 2
- Button layout management wrong HOT 23
- Feature Request: Markdown Preview HOT 13
- does it work OK on CrunchBang Linux? HOT 2
- Yellow highlight in pasted text. HOT 11
- Use Semantic Versioning in your releases and downloadables HOT 5
- Import from original Tomboy HOT 2
- Debian testing: Version 0.36a-2 Wrong layout HOT 2
- BullXXXXet ?? HOT 1
- Line feed (shift-enter) does not work. HOT 5
- RPM Binary missing HOT 10
- Undo does not work with [ENTER] HOT 2
- Special characters in headline confuse the program HOT 6
- Replace License HOT 1
- Links to folders and files HOT 9
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tomboy-ng.