Zend_Lucene sökkompetent fungerar ganska bra. Jag är inte säker på hur det skulle klara ditt andra krav, men om du anpassade den tokeniserade bör du kunna göra det genom att behandla en förändring från bokstäver till siffror som ett nytt ord.
Den jag verkligen inte är säker på är det högsta kravet. Med tanke på hur det indexeras blir ordningen respektlös i sökningen, så du kanske inte kan göra det utan tung redigering av Lucene, skriva ett filter (använda lucene för att dra matchningarna och sedan kontrollera ordningen) eller skriva din egen lösning . Alla dessa kommer att sakta ner sökningen och lägga till belastning på din server.
Det finns också solr , men jag har aldrig använt det och vet inget om det. Sphinx var en annan, men jag ser att du redan har uteslutit det.