What is does it simply word-by-word or phase-by-phase matching. The good thing about this kind of search is that your vocabulary is very much static. :^P
As for shortest path search, etc., some innovative work is definitely involved. But as there have already been much research in this field, I don't think there is much of a problem either.