Al momento indice sto aumentando determinato documento in questo modo:In Lucene, perché i miei documenti potenziati e non caricati hanno lo stesso punteggio?
if (myCondition)
{
document.SetBoost(1.2f);
}
ma a ricerca di documenti in tempo con tutte le stesse identiche caratteristiche ma alcuni di passaggio e alcuni myCondition mancanza di tutti finiscono per avere lo stesso punteggio.
E qui è il codice di ricerca:
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.Add(new TermQuery(new Term(FieldNames.HAS_PHOTO, "y")), BooleanClause.Occur.MUST);
booleanQuery.Add(new TermQuery(new Term(FieldNames.AUTHOR_TYPE, AuthorTypes.BLOGGER)), BooleanClause.Occur.MUST_NOT);
indexSearcher.Search(booleanQuery, 10);
Potete dirmi quello che devo fare per ottenere i documenti che sono stati alimentati per ottenere un punteggio più alto?
Molte grazie!
Vorrei raccomandare di pubblicare un codice minimale che mostri "I index in questo modo, cerca in questo modo e questo non funziona" (codice di lavoro senza lasciare nulla all'immagine del lettore). –
Non sono certo un esperto, ma dovresti provare a caricare il tuo indice in Luke e controllare i valori di boost per ogni documento. Prova anche a controllare il risultato del metodo Explain() per vedere quale tipo di query viene eseguita. La mia ipotesi è che sia una domanda costante. Dai documenti di Lucene: "Una query che racchiude un'altra query o un filtro e restituisce semplicemente un punteggio costante uguale alla query boost per ogni documento che corrisponde al filtro o alla query. Per le query, quindi, semplicemente strisce di tutti i punteggi e restituisce una costante ". Non sono sicuro su come prevenirlo, ma sembra che questa query ignori il punteggio. – goalie7960
@ goalie7960 puoi pubblicare un link alla pagina a cui fai riferimento dai documenti. Questo è l'indizio di cui ho bisogno. – Barka