Jump to content
Shannon Wagner

windows Feature (un)request - "Search as you type"

Recommended Posts

I appreciate the hard work that is going into moving forward to Evernote 4!

One "feature" of this and the previous versions that has only caused me frustration is "search as you type" - so that when I start typing into the search box the application will begin its search while I am still typing.

First, the feature seems to work better than it used to. It used to be that if I tried to search for "apple", the search would


  • [*:1owyyi0k]Bring back all notes containing "a" (which was sort of silly)
    [*:1owyyi0k]Then bring back all notes containing "ap" (almost just as silly)
    [*:1owyyi0k]And eventually bring back my "apple" notes after the user interface got enough thread time to let me finish typing the full search term

Now, the search seems to be triggered by two characters typed, and the search itself is faster. But still, a search for "apple" will bring back results for "ap" before letting me finish.

A few suggestions:


  • [*:1owyyi0k]Since I don't ever like "search as you type", my vote would be to give an option to turn it off. Of course, if it could reliably work as quickly as Google's new "instant search", that would be fine, but Evernote's implementation is not even in the same ballpark as Google's, even though the data is all local. This is not a criticism of Evernote - I think it's a darned hard feature to implement effectively.
    [*:1owyyi0k]If giving an option to turn off the feature is not possible, then I vote for implementing search in a non-blocking thread that does not cause the user interface to hang. From what I can tell, just as a user of the interface, the current code is using the same thread to get input and search the database, with a big "hippo" of a slow search stuck in the middle. :-)

So, that's my feedback. Everything else about the product and service has been great, or at least good enough that I know the non-good bits will be resolved quickly. But the search feature seems like maybe it is intended to stay in what I think is still too rough an implementation for daily usage..

Thanks for any consideration, and I hope my comments get filed in a special notebook in your personal digital memory!

--

sw

Share this post


Link to post

iqwirty,

EN4 searches my 8K notes 1.6GB database in less than 100ms (2.16Ghz ThinkPad notebook) so "search as you type" works nicely. The search code runs in a separate thread with priority below GUI thread, just as you would expect.

Would it be possible to run DbgView (http://technet.microsoft.com/en-us/sysi ... 96647.aspx) to capture debugging output from EN4 while you're typing in "apple" and send it to us? Hopefully this would give us some clues since EN4 send some profiling output to debug port.

Thank you,

/Peter

Share this post


Link to post
. . . Since I don't ever like "search as you type", my vote would be to give an option to turn it off. . . .

I strongly support providing the option to turn it off.

As it is it presents two issues:

(1) It is a distraction most of the time.

(2) It has an unintended consequence of consuming machine resources with little ROI.

Since EN does NOT do a full text search anyway, what the user is typing is probably not relevant until either the user has a significant pause in typing or has completed a word.

This is quite different from typing text in a list like Tags. When assigning a tag having EN respond to every character typed is very useful.

I propose the following rules for processing keystrokes in the Note Search field:

(1) Do not perform incremental search until either the user pauses typing for at least 1-2 seconds OR a word delimiter is typed.

(2) Start Search when the user presses the [ENTER] key.

(3) Leave the cursor at the end of the text in the Search field so the user can continue typing if so desired.

(4) If the user presses the [TAB] key start the search and move focus to the Notebook search field.

(5) [sHIFT]-[TAB] should return focus to the end of the Search field.

(6) Changing the Notebook search field should trigger the search with the selected Notebook AND the Search criteria in the Search field

(7) Changing the Notebook to be searched should NOT clear the Search field as it currently does.

So please give us the option of turning off incremental search in the Note Search field.

Share this post


Link to post

Hi Peter,

Thank you for your follow-up. I really appreciate it, and the attentive and personal support are a big reason why Evernote is a good company for its users. I've included the output of DebugView below. Just let me know if there is any other information you think I can provide which might help.

The performance of this feature has been an issue for me on each of my machines for several years. Since for me it is an easily reproducible and obvious bug (in several different installation, over many versions), I would have assumed it was on Evernote's bug list. I know that other users have reported the issue on v3.5 on the support forum. So I am glad that I decided to report it again since your response makes me think Evernote is not aware of the issue.

Please forgive my outsider assessment that the "search as you type" was happening on a blocking thread. Of course I can't know that without seeing the code, but from what I can tell as a user, the search is effectively happening on a blocking thread, and reliably happens after two characters typed, no matter how fast I try to get in three characters.. It seems related to application behavior, and not simply to operating environment conditions.

For background info, all of my Evernote installations are on Windows XP machines with about a 2.3Ghz processor. My current database is about 13,000 notes and about 6GB. I know these machines are relatively old and slow, but since I don't have reproducible performance problems with any applications (except Evernote), there is no reason for me to buy newer hardware or use a newer operating system.

As I mentioned, this issue has occurred for me for several years. But I first reported it via support in February 2010:


  • [*:1i94hzn4]Ticket #84593 - February 24, 2010 - (Closed) [Premium] Possible to turn off "search as you type"? (Evernote 3.5)
    [*:1i94hzn4]Ticket #97072 - April 26, 2010 - (Closed) [Premium] Poor search performance (Evernote 3.5)

In Ticket #97072, I was told by a lead engineer:

there is a bug in 3.5 and Windows XP. If you are running XP and having problems of this nature we would recommend that you download Evernote 3.1

I decided not to downgrade since the bug was not critical enough for me. Later in the ticket, I was told:

we are working on creating a new version of Evernote that shouldn't have these problems as it will not be based on .net

Again - any help is appreciated, and let me know if there is anything I can do to help collect further info.

00000000 0.00000000 [6052] CSingleNoteView::OnDestroy: executed in 0.000018 sec
00000001 4.13044882 [6052] CSearchThread::Search: executed in 0.006465 sec
00000002 4.38764429 [6052] CNoteList::SetNotes: 13804 notes set in 0.023704 sec
00000003 4.53763866 [6052] CHtmlNoteCtrl::LoadNote: uid=35881 executed in 0.004407 sec
00000004 4.72048521 [4380] CMainFrame::OnCreate: entered at 0.021794 sec
00000005 4.73873615 [4380] CMainFrame::OnCreate: executed in 0.018297 sec
00000006 4.86171627 [6052] CHtmlNoteRendererCtrl::RenderNote: note uid=35876 loaded in 0.114906 sec
00000007 4.86188650 [6052] CHtmlNoteImageRenderer::Render: uid=35876 executed in 0.370207 sec
00000008 5.03191376 [6052] CHtmlNoteRendererCtrl::RenderNote: note uid=35878 loaded in 0.111067 sec
00000009 5.03208208 [6052] CHtmlNoteImageRenderer::Render: uid=35878 executed in 0.111479 sec
00000010 5.28215981 [6052] CHtmlNoteRendererCtrl::RenderNote: note uid=35874 loaded in 0.207975 sec
00000011 5.28232813 [6052] CHtmlNoteImageRenderer::Render: uid=35874 executed in 0.208729 sec
00000012 5.53993225 [6052] CHtmlNoteRendererCtrl::RenderNote: note uid=35871 loaded in 0.191918 sec
00000013 5.54017544 [6052] CHtmlNoteImageRenderer::Render: uid=35871 executed in 0.192493 sec
00000014 5.84516954 [6052] CHtmlNoteRendererCtrl::RenderNote: note uid=35864 loaded in 0.248459 sec
00000015 5.84535646 [6052] CHtmlNoteImageRenderer::Render: uid=35864 executed in 0.291451 sec
00000016 6.05032539 [6052] CHtmlNoteRendererCtrl::RenderNote: note uid=35858 loaded in 0.096396 sec
00000017 6.05049992 [6052] CHtmlNoteImageRenderer::Render: uid=35858 executed in 0.096794 sec
00000018 6.09528017 [4380] CMainView::LoadNoteContent: cb=270
00000019 6.13958597 [4380] CMainView::SendNoteImage  : note image rendered in 0.046804 sec
00000020 6.18017435 [6052] CHtmlNoteRendererCtrl::RenderNote: note uid=35856 loaded in 0.050141 sec
00000021 6.18922663 [6052] CHtmlNoteImageRenderer::Render: uid=35856 executed in 0.097422 sec
00000022 6.41721010 [6052] CSearchThread::Search: executed in 0.002658 sec
00000023 6.50000191 [6052] CNoteList::SetNotes: 13804 notes set in 0.022066 sec
00000024 11.18332481 [4380] CMainFrame::OnDestroy: executed in 0.000003 sec
00000025 11.26759529 [4380] EvernoteThumbnailer::WinMain: app ended in 0.084917 sec
00000026 16.25836945 [6052] CSearchThread::Search: executed in 8.046857 sec
00000027 16.45328903 [6052] CSearchThread::Search: executed in 0.191893 sec
00000028 16.47390556 [6052] CNoteList::SetNotes: 11310 notes set in 0.019471 sec
00000029 16.68297195 [6052] CSearchThread::Search: executed in 0.128567 sec
00000030 16.80986786 [6052] CNoteList::SetNotes: 219 notes set in 0.009674 sec
00000031 17.09549904 [6052] CHtmlNoteCtrl::LoadNote: uid=35556 executed in 0.202228 sec
00000032 17.32750320 [460] CMainFrame::OnCreate: entered at 0.024883 sec
00000033 17.39247704 [460] CMainFrame::OnCreate: executed in 0.061495 sec
00000034 17.41386032 [460] CMainView::LoadNoteContent: cb=4743
00000035 17.63717270 [460] CMainView::SendNoteImage  : note image rendered in 0.231941 sec
00000036 17.64275932 [6052] CHtmlNoteRendererCtrl::RenderNote: note uid=35854 loaded in 0.240988 sec
00000037 17.66640854 [6052] CHtmlNoteImageRenderer::Render: uid=35854 executed in 1.118856 sec
00000038 22.67652512 [460] CMainFrame::OnDestroy: executed in 0.000003 sec
00000039 23.55146027 [460] EvernoteThumbnailer::WinMain: app ended in 0.883790 sec

Share this post


Link to post

iqwirty,

EN3.1 and 3.5 used pretty much the same search engine that had poor performance on large number of notes, with 13K notes it must be really painful to use.

EN4 search engine is implemented from scratch and it handles large databases much better. You can see it in your log: most searches are executed in much less than a second, which is expected. However, there is one search that took 8 seconds, which is way too long. I'm really interested to find out why this happens -- would it be possible to switch to private email to do more research? Please PM me if so.

00000001 4.13044882 [6052] CSearchThread::Search: executed in 0.006465 sec

00000002 4.38764429 [6052] CNoteList::SetNotes: 13804 notes set in 0.023704 sec

00000022 6.41721010 [6052] CSearchThread::Search: executed in 0.002658 sec

00000023 6.50000191 [6052] CNoteList::SetNotes: 13804 notes set in 0.022066 sec

00000026 16.25836945 [6052] CSearchThread::Search: executed in 8.046857 sec <<<<<<<<<<<<<<<

00000027 16.45328903 [6052] CSearchThread::Search: executed in 0.191893 sec

00000028 16.47390556 [6052] CNoteList::SetNotes: 11310 notes set in 0.019471 sec

00000029 16.68297195 [6052] CSearchThread::Search: executed in 0.128567 sec

00000030 16.80986786 [6052] CNoteList::SetNotes: 219 notes set in 0.009674 sec

/Peter

Share this post


Link to post

JMUnderwood11, thank your for thoughtful suggestion!

/Peter

Share this post


Link to post

Of course, Peter. I can send you more information via PM.

The only thing I would ask is that if you come to feel the bug I am seeing is not widespread or significant enough to justify further research, just let me know and I will live with it. Even though for me it is a very significant bug, I do not want to give it more attention than it deserves within the larger plan of Evernote's improvement. Since I am heavily invested as an Evernote user, what is most important to me is the long-term improvement of the product for everyone. But I happen to think the user interface has lagged behind over components of the product/service at times, and that this will hurt new user adoption as the product becomes more mainstream.

And of course, it sure would be nice to have a snappy user interface for myself! :-)

- shannon

Share this post


Link to post

i still find the search as you type annoying as it hangs and wanted to cast my vote against this feature at least until it can truly and quickly search as you type rather than make you wait as it filters.

Share this post


Link to post

I just made a new post about this and was poking around the forum.  The search as you type feature persists, and it's May 2014, and there is still lag. Even on my Windows 7 64-bit Core i7 machine with 8 GB RAM.

 

Evernote 5.4.1.3962 (271962) Public

 

I don't mind search as you type, but would like to see my typing not impeded by the CPU requirements of doing the search. If I can't have that then I would rather not have the search as you type.

 

Share this post


Link to post

I just made a new post about this and was poking around the forum.  The search as you type feature persists, and it's May 2014, and there is still lag. Even on my Windows 7 64-bit Core i7 machine with 8 GB RAM.

 

Evernote 5.4.1.3962 (271962) Public

 

I don't mind search as you type, but would like to see my typing not impeded by the CPU requirements of doing the search. If I can't have that then I would rather not have the search as you type.

This has worked for me.  Delays the search until you are done typing.  https://discussion.evernote.com/topic/26477-request-2-simple-search-options/?p=141919

Share this post


Link to post

×
×
  • Create New...