Le Zend_Lucene la recherche compétente fonctionne assez bien. Je ne sais pas comment cela répondrait à votre deuxième exigence, mais si vous avez personnalisé la tokenisation, vous devriez pouvoir le faire en traitant un changement de lettres en chiffres comme un nouveau mot.
Celui dont je ne suis vraiment pas sûr est la principale exigence. Compte tenu de la façon dont il est indexé, l'ordre devient irrévérencieux dans la recherche, vous ne pourrez donc peut-être pas le faire sans une lourde modification de Lucene, en écrivant un filtre (en utilisant lucene pour extraire les correspondances, puis en vérifiant l'ordre) ou en écrivant votre propre solution . Tout cela ralentira la recherche et ajoutera de la charge à votre serveur.
Il y a aussi solr , mais je ne l'ai jamais utilisé et je n'y connais rien. Sphinx était un autre, mais je vois que vous avez déjà exclu cela.