È possibile aumentare diversi campi in MultiFieldQueryParser con fattori diversi? Inoltre, qual è il valore massimo del fattore di amplificazione che posso assegnare a un campo?Fattore di potenziamento in MultiFieldQueryParser
Grazie mille! Ed
È possibile aumentare diversi campi in MultiFieldQueryParser con fattori diversi? Inoltre, qual è il valore massimo del fattore di amplificazione che posso assegnare a un campo?Fattore di potenziamento in MultiFieldQueryParser
Grazie mille! Ed
MultiFieldQueryParser
ha un [costruttore] [1] che accetta una mappa di boost. Si usa con qualcosa di simile:
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
);
Per quanto riguarda la spinta massima, non sono sicuro, ma non si dovrebbe pensare a spinta in termini assoluti in ogni caso. Basta usare un rapporto di potenziamenti che abbia senso. Vedi anche 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)
Ciao, grazie per la risposta .... sto usando Lucene .net versione 2.0.0.4 Non vedo il costruttore MultiFieldQueryParser che accetta i valori di boost. MultiFieldQueryParser multiFieldQueryParser = new MultiFieldQueryParser (campi, _analyzer); Posso sapere quale versione di Lucene stai usando? Grazie. –
Il parametro boost è disponibile solo in Lucene 2.4. Se non è possibile eseguire l'aggiornamento, è consigliabile copiare il codice nel proprio MyMutliFieldQueryParser. Non è così tanto codice. – itsadok
Potrebbe essere necessario effettuare il porting del codice da java ... Non sono riuscito a trovare il codice sorgente di lucene.net online (svn.apache.org è inattivo su ATM). – itsadok