Zend_Lucene wyszukiwanie kompetentne działa całkiem dobrze. Nie jestem pewien, jak poradzi sobie z drugim wymaganiem, jednak jeśli dostosowałeś tokenizację, powinieneś być w stanie to zrobić, traktując zmianę z liter na cyfry jako nowe słowo.
Jedyne, co do którego naprawdę nie jestem pewien, to najwyższy wymóg. Biorąc pod uwagę sposób indeksowania, kolejność w wyszukiwaniu staje się lekceważąca, więc możesz nie być w stanie tego zrobić bez ciężkiej edycji Lucene, napisania filtru (używanie lucene do wyciągnięcia dopasowań, a następnie sprawdzenia kolejności) lub napisania własnego rozwiązania . Wszystkie te spowolnią wyszukiwanie i zwiększą obciążenie serwera.
Istnieje również solr , ale nigdy go nie używałem i nic o nim nie wiem. Sfinks był inny, ale widzę, że już to wykluczyłeś.