Lucene busca y subraya
lucene.net underscores (2)
Cuando uso Luke para buscar en mi índice Lucene usando un analizador estándar, puedo ver que el campo en el que estoy buscando contiene valores de la forma MY_VALUE. Cuando busco el campo: "MY_VALUE", la consulta se analiza como campo: "my value"
¿Hay una manera simple de escapar del carácter de subrayado (_) para que lo busque?
EDITAR:
4/1/2010 11:08 AM PST
Creo que hay un error en el tokenizer para Lucene 2.9.1 y probablemente haya estado allí antes. Cargue Luke y trate de buscar "BB_HHH_FFFF5_SSSS", cuando hay un número, se devuelven los siguientes tokens:
"bb hhh_ffff5_ssss"
Después de algunas pruebas, descubrí que esto se debe al número. Si ingreso
"BB_HHH_FFFF_SSSS", obtengo
"bb hhh ffff ssss"
En este punto, me estoy inclinando hacia un error de tokenizador a menos que se suponga que la presencia del número tenga este comportamiento, pero no veo por qué.
¿Alguien puede confirmar esto?
No creo que puedas usar el analizador estándar para este caso de uso.
A juzgar por lo que creo que son sus requisitos, el analizador de palabras clave debería funcionar bien con poco esfuerzo (todo el campo se convierte en un solo término).
Creo que parte de la confusión surge al mirar el campo con luke. El valor almacenado no es el que utilizan las consultas, lo que necesita son los términos. Sospecho que cuando mires los términos almacenados para tu campo, serán "mi" y "valor".
Espero que esto ayude,
No parece que haya usado el StandardAnalyzer para indexar ese campo. En Luke, deberá seleccionar el analizador que utilizó para indexar ese campo para que coincida con MY_VALUE correctamente.
Por cierto, es posible que pueda hacer coincidir MY_VALUE utilizando el KeywordAnalyzer.