¿Cómo me aseguro de que lucene me devuelva resultados de búsqueda relevantes cuando mi cadena de entrada contiene términos como C++? Lucene parece ignorar ++ caracteres.Manejo + como personaje especial en la búsqueda de Lucene
Detalles del código: Cuando ejecuto esta línea, obtengo una consulta de búsqueda en blanco.
queryField = multiFieldQueryParser.Parse(inpKeywords);
keywordsQuery.Add(queryField, BooleanClause.Occur.SHOULD);
Y aquí es mi analizador personalizado:
public class CustomAnalyzer : Analyzer
{
private static readonly WhitespaceAnalyzer whitespaceAnalyzer = new WhitespaceAnalyzer();
public override TokenStream TokenStream(String fieldName, System.IO.TextReader reader)
{
TokenStream result = whitespaceAnalyzer.TokenStream(fieldName, reader);
result = new StandardTokenizer(reader);
result = new LowerCaseFilter(result);
result = new StopFilter(result, stop_words);
return result;
}
}
Y estoy ejecutar la consulta de búsqueda de esta manera:
indexSearcher.Search(searchQuery, collector);
Yo probé QUERYFIELD = multiFieldQueryParser.Parse (QueryParser.Escape (inpKeywords)) ;, pero todavía no funciona. Aquí está la consulta que se ejecuta y devuelve cero visitas. "+ (())"
Gracias.
estoy usando WhiteSpaceAnalyzer única ... pero aún se ignoran los caracteres + –