Fundamentally, Amazon seems to have a problem with not understanding priority. It's especially terrible at associating numbers with units. While I have no access to how Amazon actually works I think it's just counting matches and thus "sprayway glass cleaner 19 oz 1 pack" and "sprayway glass cleaner 1 oz 19 pack" would score equally and "bogus glass cleaner 19 oz 1 pack" would score higher than "sprayway glass cleaner 19 ounce". Remember, most quantity 1 items will not say so in the description, "1 pack" is asking for trouble.
I think the only real fix here would be for Amazon to separate out brand, product, size (or sizes in a few cases) and quantity. And the parser needs to attach numbers to the following word if that word is a unit word.
While I've never done it at any real scale I have done a routine that predicts what's related to what. It required giving it a fair understanding of the data (for example, Xabcde is probably related to X despite the distance between them) to get it to quit spewing out whoppers. It's hard even in my case where I could afford to run the test against all reasonable candidates. Amazon simply can't do that. (My routine runs in length * length * table size. You simply do not implement anything that even resembles O(n^3) at scale.)
Trying your search, I'm not seeing a pile of crap.
First hit differs from your search term only in 2 vs 1. I believe Amazon doesn't consider numbers as as much of a mismatch as other things.
The third hit is obviously what you want, but it doesn't have the commas and the unit is "1 pack (packaging may vary)". Apparently that makes it score slightly less. Going down the page I find it in 1, 2, 3, 4, and 6 packs, fresh scent vs unscented and there's also "blue". There's one clear typo of 15 oz, and you get a bunch of things where it's a multi-pack bundled with some other cleaning item.
Farther on down I start seeing different sizes and related products. Is there any harm to it displaying lesser matches farther on down??