Основным отличием является время поиска.
для немногих данных лучше карта
для большого количества данных лучше hashmap
в любом случае технические ответы, приведенные ранее, верны.
Одним из преимуществ Sphinx является то, что вы можете «вставлять» его между вашими клиентами и сервером MySQL, и он будет только «вмешиваться» в запросы, конкретно адресованные ему, прозрачно отталкивая других от MySQL - - см., например, эту статью . Вы можете лучше всего сказать, является ли это преимуществом в вашем случае!
Извините, нет реального опыта работы с Xapian или Lucene - тем не менее, чтение о том, как их развернуть, звучит как (для меня! ), как будто оно того стоит, только если вы выявили существенные преимущества. В противном случае развертывание Sphinx "просто как пирог" в качестве "прокси" между вашими клиентами и вашим сервером MySQL кажется мне большой и существенной победой!
Я посмотрел на Zend_Search_Lucene и Sphinx в поисках похожего проекта - поиск содержимого базы данных (в моем случае, информации о книге). Я провел около дня, рассматривая каждую. Как бы то ни было, я обнаружил, что Sphinx намного проще настроить и использовать.