Commit Graph

316 Commits

Author SHA1 Message Date
clueless
beefc6a86e fix 2020-01-25 00:12:32 +02:00
Jeremy Wu
07310c7714 Fix pinyin fuzzysearch (#131)
* fix typo

* make function obsolete 

it is not used in the code

* rewrite the function that converts chinese chars to pinyin

1. Only difference in this rewrite is instead of returning 2D array, return as a combined single string of all the possible pinyin combination. Since fuzzy search does character matching, this shouldn't be a problem.

2. Added a function that returns a custom language converter. In this case Pinyin converter. New converters can be added.

* Use new language converter param + strip out ScoreForPinyin method

* update

* Change parameter name

* fix failing tests

* WIP

* Remove todo

There should be some distinction between score after precision filter and actual raw score derived from FuzzySearch. Although so far RawScore is used in testing, but it seems to describe the structure. Originally it was to avoid assigning score directly as it would be hard to reason about that output of FuzzySearch score is.

* Add constructors, remove default to enforce required properties

* remove setting rawscore in SearchPrecision

* Change method name to reflect intention

* Change parameter name + update comment

* update

* Remove params comment

Co-authored-by: theClueless <14300910+theClueless@users.noreply.github.com>
2020-01-20 01:06:16 +02:00
Jeremy Wu
ee93f7e018
Merge pull request #130 from jjw24/clueless/packrefMine
Update sln to use package references
2020-01-18 20:59:50 +11:00
AT
7ce45d2b11 fix pre build event 2020-01-17 14:56:26 +02:00
Jeremy Wu
f39144cc51
Merge pull request #119 from theClueless/deploymentUpdates
Auto update improvements: Updater
2020-01-15 09:08:45 +11:00
AT
725df15012 update to package reference 2020-01-14 21:10:54 +02:00
Jeremy Wu
6cad4bc986
Merge pull request #112 from theClueless/fuzzyMatchUpdates
Fuzzy match logic update
2020-01-14 08:26:45 +11:00
Jeremy Wu
504c08a0fc Update test per comment 2020-01-14 07:53:59 +11:00
Jeremy Wu
592f1cafdb update allSubstringsContainedInCompareString calculation as per comment 2020-01-14 07:36:53 +11:00
Jeremy Wu
71d8c2080c update comment typo 2020-01-14 07:30:40 +11:00
Jeremy Wu
6095933847 simplify condition as per comment 2020-01-14 07:29:21 +11:00
AT
d74b5c8764 another 2020-01-09 01:13:56 +02:00
AT
0f19010e52 oops 2020-01-09 01:10:13 +02:00
Jeremy Wu
76727d09bf Update StringMatcher's UserSettingSearchPrecision property type
makes more sense and less conversion to int for actual precision score
2020-01-07 22:30:36 +11:00
AT
49b85d150c initial work, added github to setting,
change update manage from static
created log folder prop for log class
2020-01-07 02:34:46 +02:00
Jeremy Wu
b54241a5b2 Update scoring for all substrings contained in compare string 2020-01-07 08:28:27 +11:00
Jeremy Wu
78a2086535 Remove containedFully variable state
Not necessary to have and not needed to add another dimension to the scoring
2020-01-07 08:04:56 +11:00
Jeremy Wu
24cc5dbaa0 Add unit tests for checking substrings
checking if all substrings contained in compareString
2020-01-07 07:55:02 +11:00
Jeremy Wu
0093838a75 fix variable state which failed to represent correctly
Failed if query text is 'sql servman'- returns true when should be false
- moved it up so evaluation is included in the final substring check
2020-01-07 07:25:13 +11:00
Jeremy Wu
dde658a514 rename variable state allWordsFullyMatched 2020-01-07 07:22:00 +11:00
Jeremy Wu
e4b017b304 fix index out of range exception
occurs when query contains more than one whitespace eg. 'sql  manag'
2020-01-07 05:59:47 +11:00
Jeremy Wu
5040f09f0c Update method summary only 2020-01-06 21:38:07 +11:00
Jeremy Wu
19911d9f1f Update comment only 2020-01-06 21:19:15 +11:00
Jeremy Wu
04b0f8b2a4 Remove fuzzy match github repo reference + add logic context in summary
1. Remove the github repo reference as we have mixed in substring matching
2. Added context on how the logic is run
2020-01-06 21:06:41 +11:00
Jeremy Wu
e453dceacd Move condition checking into functions
- Moved if statement that checks if all query substrings are matched into a funciton
- convert into shorthand expression the if statement that checks if all words are fully matched
2020-01-06 20:51:27 +11:00
Jeremy Wu
42a938b50b Simplify IfElse 2020-01-06 19:15:05 +11:00
AT
28b098cfb7 make image created in hash freeze 2020-01-04 00:40:37 +02:00
AT
fd59088528 made data images freeze as well 2020-01-03 22:33:00 +02:00
AT
05bd32f750 remove comment 2020-01-03 22:01:15 +02:00
AT
e80147d24e removed a duplicate check 2020-01-03 21:17:58 +02:00
AT
72e1a19ea5 remove using 2020-01-03 21:16:38 +02:00
AT
b14d6c9216 adding hash ability to image loader (reducing the load on memory) 2020-01-03 21:16:17 +02:00
Jeremy Wu
220dbd7e30 Move some logic into functions
- Move checking if there is a prev compare string char match into function
- Move updating of index list when a better match is found for the first substring logic into function
2020-01-03 08:02:02 +11:00
Jeremy Wu
84d6fc2787 Update variable names
Make variables more descriptive of the state they represent
2020-01-03 07:58:20 +11:00
Jeremy Wu
52615c6f52 WIP variables 2020-01-02 08:02:23 +11:00
AT
42edb20b07 fixes to string matcher alg and some logging stuff 2019-12-30 01:13:33 +02:00
AT
4e3228628a Merge branch 'dev' of https://github.com/jjw24/Wox into upstreamdev 2019-12-13 01:48:37 +02:00
SysC0mp
0f9da7f519 Always return filled result again 2019-12-11 19:10:11 +01:00
SysC0mp
8ded683796 Merge branch 'dev' into highlight-how-results-matched 2019-12-11 16:50:17 +01:00
AT
bcc9379ebc typo in log 2019-12-10 12:18:24 +02:00
SysC0mp
7d5c827dec Remove whitespace 2019-12-09 21:08:38 +01:00
SysC0mp
e60797cd0f Introduce RawScore property
New property RawScore is used to save the calculated score without any
search precision filtering added.
2019-12-09 21:06:31 +01:00
SysC0mp
49c5c5bbde Pass "ShouldUsePinyin" to StringMatcher
Flag is used in method "ShouldUsePinyin()" to avoid calling Alphabet
service. Otherwise, tests applying to StringMatcher.FuzzySearch() would
fail because the pinyin helper library fails to initialize.
2019-12-09 20:57:59 +01:00
SysC0mp
78f243651e Pass Settings instance to Alphabet again 2019-12-09 20:47:24 +01:00
AT
c90dd0e818 updated top most record 2019-12-03 23:02:24 +02:00
SysC0mp
627e99859d Directly calculate pinyin if needed
The MatchResult will always get the maximum score from either
ScoreForPinyin() or CalculateSearchScore(). ScoreForPinyin() is
completely dependant on the "ShouldUsePinyin" global setting.
2019-12-03 15:31:23 +01:00
SysC0mp
6ebca7fa7c Apply search precision filter on assignment
The search precision must be used, so it makes sense to apply the filter
directly on score assignment. Score will be "0" if precision filter
was not met.
2019-12-03 15:31:23 +01:00
SysC0mp
3d55ad783e Only pass needed setting to Alphabet
As Alphabet class is static, its methods could be used without
ever calling Alphabet.initialize(_settings) beforehand which would end
in an exception.  Therefor only _shouldUsePinyin settings needed will
be transferred with a given default value.
2019-12-03 15:31:08 +01:00
SysC0mp
05f66f9bea Improve code formatting 2019-12-03 15:31:07 +01:00
AT
9d98d26cc7 added log into Alphabet service since it can induce a large perf hit 2019-11-16 01:28:07 +02:00