email search lucene indexing

email - Consultar direcciones de correo electrónico indexadas por lucene



search indexing (4)

Lucene usa ''Analizadores'' para confeccionar e indexar sus documentos. Del mismo modo, los analizadores se utilizan para identificar la consulta de búsqueda del usuario.

Un error común es utilizar un analizador diferente para la indexación que para la búsqueda, ambos deben coincidir para que usted obtenga los resultados que espera (busque en este documento "error común").

El tokeniser lucene estándar reconoce cadenas de correo electrónico y las indexa como un token.

Indexará [email protected] como [token: [email protected]]. Sin embargo, es posible que el analizador que está utilizando para confeccionar la consulta (o si está construyendo la consulta manualmente) lo está dividiendo en 3 fichas, dividiendo en caracteres no alfanuméricos. Por lo tanto, es posible que esté buscando 3 tokens adyacentes: [tok1: dave] [tok2: gmail] [tok3: com], que no existen.

Query.toString probablemente "imprimirá bastante" la consulta que está enviando a Lucene, lo que puede ayudarlo a depurar.

Si estoy tratando de recuperar [email protected], la búsqueda de "dave" funcionará como "[email protected]".

Pero buscar "dave @ gmail" no funcionará. La consulta tiene lugar dentro de un servlet de Java. Creo que el problema puede estar en la división completa

¿Cómo puedo solucionar esto para que "dave @ gmail" devuelva "[email protected]"? Las direcciones de correo electrónico también pueden contener otros dominios (como .co.uk)

Gracias


Utilizar

org.apache.lucene.analysis.standard.UAX29URLEmailTokenizer

o

org.apache.lucene.analysis.KeywordTokenizer

tokenizer para poder buscar por correo electrónico



puede usar el Fuzzy como analizador en la búsqueda de consultas. esto se aproximará al resultado establecido por el usuario define levenshtein Distance (LD).