2009-02-15 11 views
8

¿Puedo aumentar diferentes campos en MultiFieldQueryParser con diferentes factores? Además, ¿cuál es el valor máximo del factor de impulso que puedo asignar a un campo?Factor de impulso en MultiFieldQueryParser

Gracias a ton! Ed

Respuesta

12

tiene un [constructor] [1] que acepta un mapa de potenciadores. Se utiliza con algo como esto:

String[] fields = new String[] { "title", "keywords", "text" }; 
HashMap<String,Float> boosts = new HashMap<String,Float>(); 
boosts.put("title", 10); 
boosts.put("keywords", 5); 
MultiFieldQueryParser queryParser = new MultiFieldQueryParser(
    fields, 
    new StandardAnalyzer(), 
    boosts 
); 

En cuanto al impulso máximo, no estoy seguro, pero no se debe pensar en aumento en términos absolutos de todos modos. Solo usa una proporción de potenciadores que tenga sentido. También vea this question.

[1]: https://lucene.apache.org/core/4_4_0/queryparser/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.html#MultiFieldQueryParser(org.apache.lucene.util.Version, java.lang.String [], org.apache.lucene.analysis.Analyzer, java.util.Map)

+0

Hola, gracias por su respuesta .... estoy usando Lucene .net versión 2.0.0.4 No veo el constructor MultiFieldQueryParser aceptando valores de impulso. MultiFieldQueryParser multiFieldQueryParser = new MultiFieldQueryParser (fields, _analyzer); ¿Sé qué versión de Lucene estás usando? Gracias. –

+0

El parámetro boost solo estaba disponible en Lucene 2.4. Si no puede actualizar, puede considerar copiar el código en su propio MyMutliFieldQueryParser. No es tanto código. – itsadok

+0

Puede que tenga que portar el código de Java ... No pude encontrar el código fuente de lucene.net en línea (svn.apache.org está caído en ATM). – itsadok