2010-08-05 12 views
9

Per quanto ne so Lucene (.net) non supporta il carattere jolly all'inizio di un termine di ricerca ->http://lucene.apache.org/java/2_0_0/queryparsersyntax.html "Nota: non è possibile utilizzare una * o? simbolo come primo carattere di una ricerca. "carattere jolly all'inizio di un termine di ricerca -Lucene

ad esempio * myword

forse perché è difficile tranquillo per la ricerca "tutto" prima il termine di ricerca.

Nonostante ciò, siamo alla ricerca di un modo per utilizzare il carattere jolly all'inizio. Qualcuno sa se questo è possibile?

Un pensiero è stato un searchterm , b searchterm, .... z * searchterm ... ma che sembra un po 'casuale per me.

grazie in anticipo

risposta

15

La tua domanda è codificata con Lucene.NET quindi immagino che vuoi dire la versione .NET piuttosto che la versione di Java.

Sì, si può avere caratteri jolly all'inizio di un termine di ricerca per via

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

, ma è necessario essere consapevoli delle conseguenze delle prestazioni. Trova il codice sorgente più dettagliato in questo blog.

Poiché Lucene.NET è una porta della versione Java, ho il sospetto che sia possibile utilizzare lo stesso approccio per la versione Java. Non ho verificato questo, però.

+1

Hai ragione. Per Lucene Java lo stesso metodo setAllowLeadingWildcard è disponibile anche su un oggetto QueryParser. – Tobias

+1

A partire da oggi, in questo è ora una proprietà: parser.AllowLeadingWildcard = true; – mbowles

Problemi correlati