2010-08-05 16 views
9

Por lo que yo sé Lucene (.net) no admite el comodín al principio de un término de búsqueda ->http://lucene.apache.org/java/2_0_0/queryparsersyntax.html "Nota: No se puede utilizar * o? símbolo como el primer personaje de una búsqueda ".comodín al principio de un término de búsqueda -Lucene

por ejemplo * myword

tal vez porque es tranquilo difícil buscar "todo" antes de que el término de búsqueda.

A pesar de eso, estamos buscando una forma de usar el comodín al principio. ¿Alguien sabe si esto es posible?

Uno pensaba que era un término de búsqueda , b término de búsqueda, .... z * término de búsqueda ... pero eso parece un poco al azar para mí.

gracias de antemano

Respuesta

15

Su pregunta se etiqueta con Lucene.NET así que supongo que te refieres a la versión de .NET en lugar de la versión de Java.

Sí, usted puede tener comodines en el comienzo de un término de búsqueda por medio de

var queryParser = new QueryParser(LuceneVersion, "content", new StandardAnalyzer(LuceneVersion)); 
queryParser.SetAllowLeadingWildcard(true); 

pero hay que ser conscientes de las consecuencias de rendimiento. Encuentre un código fuente más detallado en este blog.

Dado que Lucene.NET es un puerto de la versión de Java, sospecho que podría utilizar el mismo enfoque para la versión de Java. Sin embargo, no verifiqué esto.

+1

Tienes razón. Para Lucene Java, el mismo método setAllowLeadingWildcard también está disponible en QueryParser-Object. – Tobias

+1

A partir de hoy, en este momento es una propiedad: parser.AllowLeadingWildcard = true; – mbowles

Cuestiones relacionadas