Hi All
I am pretty sure there is an error with search result with stings which are just after "-" symbol...
Let's say i have a file:
abc_123-def_456.mp3
So when you type 'def' nothing found. However when you type '456' it finds the file.
I tested that with multiple files.
PowerToys update [crutkas edited]:
We are currently blocked on resolving this since it a bug in Indexer regarding word breaks. For PowerToys to use the LIKE statement as a workaround, we feel the speed difference is too costly and is a constant impact for all queries, not just files with a dash in them.
Tracking ADO bug is: https://microsoft.visualstudio.com/OS/_workitems/edit/25828850
Related to #3330
tracking in #3330
Thanks for filing, working on it!
Hi All
I am pretty sure there is an error with search result with stings which are just after "-" symbol...
Let's say i have a file:
abc_123-def_456.mp3
So when you type 'def' nothing found. However when you type '456' it finds the file.
I tested that with multiple files.
Until they fix it, you can search "*def" and find your file if that helps.
def transform to following SQL query :
SELECT TOP 100 "System.ItemUrl", "System.FileName" FROM "SystemIndex" WHERE CONTAINS(System.FileName,'"def*"',1033) AND scope='file:' ORDER BY System.DateModified DESC
This query will match all the words starting with def. Note in SQL space, _ are both considered as word breakers. So the above query will match "here define" or "abc_def"" but will not match "abc-def" as - is not a word breaker.
*def transforms to following SQL Query : SELECT TOP 100 "System.ItemUrl", "System.FileName" FROM "SystemIndex" WHERE (System.FileName LIKE '%def%' OR CONTAINS(System.FileName,'"*def*"',1033)) AND scope='file:' ORDER BY System.DateModified DESC.
In this query, we are using LIKE statement which matches all strings containing substring def. Hence "abc-def" will be a match.
The first SQL is faster because it can use an inbuilt index on System.FileName. The second query, using LIKE, will be unable to use an index since it starts with a wildcard, so it will always require a full table scan.
So if we try to modify the current behavior and do a substring match using LIKE it will heavily impact the performance of indexer plugin. Also, the start menu has similar behavior.
The best we could do here is to add - as a word breaker.
@ryanbodrug-microsoft @crutkas What do you suggest ?
Define “fast”. Let’s get numbers.
@crutkas @ryanbodrug-microsoft
I ran index search on 40 randomly picked filenames.
Stats for query with LIKE SQL statement in ms
Mean :226.9
Min :100
Max :956
Stats for query without LIKE SQL statement in ms
Mean :47.9
Min :31
Max :101
Added update at top but for people watching:
We are currently blocked on resolving this since it a bug in Indexer regarding word breaks. For PowerToys to use the LIKE statement as a workaround, we feel the speed difference is too costly and is a constant impact for all queries, not just files with a dash in them.
Tracking ADO bug is: https://microsoft.visualstudio.com/OS/_workitems/edit/25828850
Someone please fix the title - Stings != Strings
Most helpful comment
Someone please fix the title - Stings != Strings