voglio avere risultati di ricerca da SOLR ordinato in questo modo:documenti dell'Ordine Solr con stesso punteggio per Aggiunto scendendo
Tutti i documenti che hanno lo stesso punteggio sarà ordinato per data decrescente aggiunto.
Così quando interrogherò solr avrò n documenti. In questo set di risultati ci saranno gruppi di documenti con lo stesso punteggio. Voglio che ognuno di questo gruppo di documenti sia ordinato decrescente per data aggiunta.
ho scoperto che posso raggiungere questo obiettivo utilizzando query di funzione, più precisamente utilizzando rord
funzione http://wiki.apache.org/solr/FunctionQuery#rord, ma, come si afferma nella documentazione
ATTENZIONE: come di Solr 1.4, ord() e ROrd() può causare l'eccesso di memoria utilizzare poiché devono utilizzare una voce FieldCache nel lettore di livello superiore, mentre le query di ordinamento e funzione ora utilizzano le voci a livello di segmento. Quindi l'ordinamento o l'uso di una query di funzione diversa, oltre a ord()/rord() raddoppierà l'uso della memoria.
causerà un uso eccessivo della memoria.
Quali altre opzioni ho?
Stavo pensando di utilizzare recip(ms(NOW,startTime),1,1,0)
. È questo l'approccio migliore?
C'è qualche impatto negativo sulle prestazioni se utilizzo recip e ms?
Sei davvero sicuro di voler ordinare per data solo per documento con lo stesso punteggio? Nella mia esperienza, questo è sempre stato sbagliato. Migliorare meglio i documenti recenti che influenzano il punteggio Solr con una query di funzione piuttosto che l'ordinamento come descritto. – javanna
Questa è una domanda molto buona, grazie. I risultati di ricerca più importanti per me sono quelli che corrispondono alle parole chiave della frase di ricerca. Dopo questo è importante quanto è nuovo il documento. Inoltre, sto eliminando continuamente i documenti obsoleti dall'indice. – Dorin
Felice di aiutare, dare un'occhiata alla mia risposta. – javanna