Lorsque j'utilise Luke pour rechercher mon index Lucene à l'aide d'un analyseur standard, je peux voir le champ que je cherche contient des valeurs du formulaire MY_VALUE. Lorsque je recherche un champ: "MY_VALUE" cependant, la requête est analysée en tant que champ: "ma valeur"Lucene recherche et caractères de soulignement
Existe-t-il un moyen simple d'échapper le trait de soulignement (_) pour qu'il le recherche?
EDIT:
4/1/2010 11:08 HNP
Je pense qu'il ya un bug dans le tokenizer pour Lucene 2.9.1 et il était probablement là avant. Chargez Luc et essayer de chercher « BB_HHH_FFFF5_SSSS », quand il y a un certain nombre, les jetons suivants sont renvoyés:
« bb hhh_ffff5_ssss »
Après quelques tests, j'ai trouvé que cela est dû le nombre. Si je entrée
« BB_HHH_FFFF_SSSS », je reçois
« bb hhh ffff ssss »
A ce moment, je me penche vers un bug tokenizer à moins que la présence du nombre est censé avoir cette comportement mais je ne vois pas pourquoi.
Est-ce que quelqu'un peut le confirmer?
Non, j'ai utilisé l'analyseur standard comme indexeur, c'est pourquoi c'est bizarre. – Matt
Si vous avez indexé en utilisant l'analyseur standard, votre index contiendra "my" et "value" comme deux jetons différents. Essayez de chercher "ma valeur" (y compris les citations) et vous pourriez obtenir des résultats. – Thomas
Je voudrais vérifier quel analyseur vous utilisez pour l'indexation. Si vous avez utilisé StandardAnalyzer pour l'indexation, il est impossible d'utiliser MY_VALUE comme terme, car StandardAnalyzer se divise toujours sur les traits de soulignement. – bajafresh4life