Filtering/Searching of Search Result Sets

I am struggling improving our internal applications searching usability. It's a proven issue that is costing significant amounts of money in wasted time.

The problem stems from an inconstancy in identification. By this I mean we often have to search for things based on partial identifiers. Furthermore, some records have 1 identifier and some records have 4 identifiers. The only requirement here is that they must have at least one.

My solution is to add the ability to search through search results.

Here is an example of what I mean:

Search for the primary identifier of HU1287778 This turns 1 million results because the last 3 digits are missing.

I now want to display a box that says filter results by: --------(select identifier from DD) and enter XXXXXX This turns 500 thousand results.

I now want to display a box that says filter results by: --------(select identifier from DD) and enter YYY This turns 50 results.

I'm curious if anyone knows any example of this type of searching. I've seen multiple search criteria applied at the initial search, but I don't think I've ever seen it in the form of searching the search results.

I'd be open to allowing multiple criteria from the start, but do to the inconsistency of identification, I'm afraid over specifying search criteria will result in the opposite issue - aka returning 0 results.