The bad news is that there is no foolproof way to find duplicates. The good news is that the standard for being a good community member is not perfection. It sounds like you're making an effort to avoid posting duplicates and, moreover, like you've gotten better. I don't think anyone can ask you to do more.
That said, if you're really intent on finding duplicates, you might try:
Look through the list of "Questions that may already have your answer" after titling and tagging your question - the system seems to use those pieces of data more than the body of your question. This seems to work better than most methods
Search the site for related keywords. For instance, I might search "abelian cyclic" searching for an answer for your question here. It didn't bring any duplicate up this time, but sometimes you get lucky - especially if you try various combinations of keywords.
As suggested in comments, you can always try Googling the site by adding "site:math.stackexchange.com" to a Google query.
But, ultimately, the question asker is not in an ideal position to find a duplicate. Highly active community members likely have a broader knowledge of the subject than you and certainly have a greater familiarity with the sort of questions that get posted to the site - and that's really helpful to finding duplicates.
I might suggest, that Brian M. Scott found that your question here was a duplicate of this one here because he wrote an answer to the latter one. It's really easy to find a duplicate when you know you already wrote an answer - and sometimes, that's the only way you'll ever find the duplicate.