La ricerca di sospensione è ordinata in base alla pertinenza, è normale. Inoltre, se due documenti hanno lo stesso punteggio, vengono ordinati in base alle loro chiavi primarie.Hibernate Ricerca ordinamento
Per esempio,
Book1: id = 1, BOOKTITLE = "ibernare ricerca per esempio".
book2: id = 2, BOOKTITLE = "hibernate ricerca in azione"
Se sto facendo una query per cercare i termini "hibernate ricerca", avrei questo ordine: Book1 poi book2
Vorrei invertire questo ordine: book2 quindi book1. Ciò significa invertire l'ordine delle chiavi primarie. Esiste un modo per farlo senza implementare una somiglianza personalizzata? Allo stesso tempo, mantenere l'ordine di rilevanza.
Se utilizzo un oggetto Sort, mantengo l'ordine di punteggio della ricerca in modalità ibernazione? Nell'esempio sopra, se cerco "hibernate search", un documento con id = 3 che contiene solo il termine "hibernate" verrebbe ordinato terzo dopo id = 2 e id = 1? Anche se inverto l'ordine Id? –
Ho detto questo perché ho provato ("id", SortField.LONG, true), funziona bene ma l'ordine dipende solo dall'ID e non dall'ID e dal punteggio del documento –
Ecco perché il primo 'SortField' nel Sort ctor deve essere 'SortField.FIELD_SCORE'. Questo dice di ordinare prima per punteggio. – femtoRgon