Par exemple, une liste de références comprend:Comment configurer Lucene pour que je puisse faire une recherche en ignorant les caractères d'espacement?
JRB1000
JRB 1000
JRB1000
JRB100-0
-JRB1000
Si un utilisateur recherche sur 'JRB1000', ou ' JRB 1000 'Je voudrais retourner un match pour tous les numéros de pièces ci-dessus.
Si votre analyseur simplement des espaces et supprime des tirets, et utilise ensuite ce qui reste que les jetons, il peut suffire. –
"Suppression d'espaces" signifie un comportement par défaut (qui ne fonctionne pas) ou traiter tout comme un seul jeton. Ce sont les cas 'JRB1000' ->' JRB 1000' et vice versa qui causent le problème ici. (Sauf si le numéro de pièce est un champ distinct?) –
Oui Le numéro de pièce est un champ séparé. J'ai réussi à obtenir ce principalement travailler avec un analyseur personnalisé et tokenizer qui supprime les espaces et les tirets et utilise le résultat comme le jeton. Cela fonctionne lors de la recherche de JRB1000 cependant, il ne fonctionne pas lors de la recherche de 'JRB 1000' malgré le passage de l'analyseur personnalisé dans le QueryParser. Je commence à penser que Lucene n'est peut-être pas le bon outil pour le travail ici, si tout ce qu'il fait est de dépouiller les espaces et les tirets de l'index et de la requête, je pourrais facilement le faire en ajoutant une table de recherche à ma base de données. – ChrisR