[Feature Request] Fast Search option to fuzzy search only at the word level
The new fast search tweak is really useful. Fuzzy search especially. However, would it be possible to add another setting to fuzzy search to make it act at the word level / require all search terms exist? I.e. "Foo" will get any strings containing "foo" (which can be a substring of a larger word), "Foo Bar" any strings containing foo AND bar, and no preference on if "Bar Foo" gets same results as "Foo Bar".
To explain more / the rationale here, with the vanilla search "Rinascita Aiming" will get no search results, since as we know the game requires exact string match on the whole string. With the current implementation of Fuzzy Search it will instead get 19 matches, the 14 matches of "Rinascita x of (m)aiming" that one would expect from "Any string containing the (exact) search terms" and then 5 "extra" matches of the helm / vambraces of fending, and armguards of striking / casting / scouting.
This is still useful of course, we got the 14 matches we want (granted maiming may be seen as an overinclusion to some), but there are more pathological cases. For example, if we search for "Kasha" (a level 62 cooking recipe), we will get 62 matches due to I'm guessing fuzzy search being based on word distance, so it tried to match potential misspellings / close spellings. That in turn gives a first result of "Knight Captain's Chair" (since it's a CRP recipe), the rakshasa gear (sort of makes sense), the sky pirate and rat set of gears, and many more results of tenuous connection to "Kasha" (with the recipe finally showing up at the bottom, since CUL is at the bottom of search results haha).
For items more closely matching the first case at least you can refine the search terms a bit, "Rinascita Jacket of Aiming" will get you exactly just that item, as will that search without the "of". But sadly for "Kasha" the only way to get a sane search result, for the case of actually wanting to get that recipe, is to turn off fuzzy search altogether right now.
So if there could be a second option, under the assumption that the current fuzzy search is desired for some use cases, that made the search a bit more strict on the inclusion of search term strings that would be much appreciated. Alternatively if that is not possible, some sort of way to toggle fuzzy search on and off faster than opening the tweaks menu and unchecking fuzzy search would be nice. Fuzzy search is really a huge convenience to have, just dealing with pathological cases being a pain point.
Looks like this could probably be implemented by using a combo of .Contains(), as used in MatchMode.Simple , and the word splitup algorithm used for MatchMode.FuzzyParts a few lines below.
So something like adding MatchMode.SimpleParts, using MatchMode.FuzzyParts or MatchMode.SimpleParts in the initialisation at line 22, and then adding a new entry to the if/switch statements at line 53 (reference above) doing the same per-item loop as MatchMode.FuzzyParts does, just using value.Contains() instead of GetRawScore() and converting to 0 or 1 appropriately, should work?