Puede anular la extensión de QueryParser subclassing si es necesario. Yo era capaz de utilizar el StopAnalyzer con AnalyzingQueryParser sin problemas:
Analyzer analyzer1 = new StopAnalyzer(Version.LUCENE_30, ImmutableSet.of("foo", "bar", "blop"));
QueryParser qp = new AnalyzingQueryParser(Version.LUCENE_30, "field", analyzer1);
Query q = qp.parse("foobar foo bar blop hello");
System.out.println("query " + q);
q = qp.parse("foobar~ foo~ bar~ hell~");
System.out.println("query " + q);
crear la consulta: Campo: Campo de foobar: hola y el campo: foobar ~ 0,5 ~ 0,5 demonios. Este es lucene 3.0.3, así que no estoy seguro de si esto se aplica a su pregunta en ese momento. De todos modos, me encontré con esto y esperaba que podría ayudar. Usted podría encontrarse con problemas con las lematizadores si agregan consultas comodín, en cuyo caso es posible que desee reemplazar los métodos:
@Override
protected Query getFuzzyQuery(String field, String termStr, float minSimilarity) throws ParseException {
return super.getFuzzyQuery(field, termStr, minSimilarity);
}
@Override
protected Query getWildcardQuery(String field, String termStr) throws ParseException {
return super.getWildcardQuery(field, termStr);
}
Si alguien tiene una opinión diferente sobre esto, por favor, dígalo. –
No he trabajado con lucene durante algún tiempo, pero sí recuerdo que debe usar los mismos analizadores para la indexación y la búsqueda. ¿Podría ser este el problema? – Dzhu
más información, por favor. ¿Cómo llegaste a la conclusión de que las cosas no funcionan/son efectivas? –