query by topic use fts table
better toString ,clean class member
refactor some test
more javadoc .allow setReferenceMessage accept null value
fix recursive query duplicate row leads reconstruct failed bug

must dedup the result set. since topMost row always appears first
we can simply check containsKey