@Override
	public void setMonitor(TaskMonitor monitor) {
		this.monitor = monitor;
	}
This class combines multiple field searchers to present a simple searcher interface for users of 
this class. First, based on the searchOptions, a field searcher is created for each field to be
search (comments, mnemonics, operands, etc.)  The searchers are ordered based on which field's matches
should be presented before another field's match at the same address.  Backwards searches would
have the searchers in the opposite order for forward searches.  This search is an efficient breadth
first search by requiring that each searcher only advance one record and only move to the next record
when all the other searches have reached records at or beyond the address of this searcher's current
record.  The basic algorithm is to ask each searcher if they have a match at the current address.  Since
they are asked in the appropriate order, if any of them has a match at the current address, it is
immediately returned.  Once all the searchers report not having a match at the current address, the
current address is advanced to the next address of the searcher whose current record is closest to
the current address (if the searcher's record is the current address, this is when it would fetch
its next record).
<P>
When a searcher's getMatch() method is called, the searcher should return it current match and 
advance its internal pointer to any additional matches at the same address or be prepared to 
report no match when the hasMatch() method is called again at the same address.  When the 
findNextSignificantAddress() method is called, the searcher should report its current record's
address if that address is not the current address.  Otherwise, the searcher should advance to
its next record and report that address.  When a search has no more records in the search
address set, it should return null for the findNextSignificantAddress() method and hasMatch should
return false.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/searchtext/databasesearcher/ProgramDatabaseSearcher.java