Domanda

Ho un indice di solr accessibili tramite SolrNet, e vorrei richiamare l'indice (posizione) di un particolare documento nei risultati, senza restituire l'intero set di risultati.

Nel dettaglio ... le query restituisce ~ 30.000 documenti ed è ordinato da un campo intero. Il campo chiave univoco contiene un GUID, e mi piacerebbe trovare dove nei risultati un particolare documento è, in base alla chiave univoca, mentre solo restituire i primi 10 risultati.

Questo indice è stato originariamente realizzato in pianura vecchio Lucene, e questo compito è stato ottenuto con due query, uno per ottenere l'id Lucene doc del documento che voglio conoscere, poi un secondo, che restituisce il risultato intera serie. Posso quindi utilizzare il documento id per trovare dove il documento viene visualizzato nel set di risultati completo, ma poi elencare solo i documenti per i primi 10.

C'è un modo per ottenere quello che sto cercando con Solr, senza restituire tutti 30000 i risultati (anche limitando questo al Guid sembra fin troppo lento)?

Grazie

È stato utile?

Soluzione

penso che si può fare con una query di serie, tra cui il vostro punto di utente come livello più basso si può ottenere il numero di utenti di cui sopra. Si può fare una query esplicita o ottenere queste informazioni utilizzando l'approccio gamma sfaccettatura.

così, se si sa che si punto di utilizzo è di 10.000, si potrebbe fare una query: punti tetris [MaxInt A 10000], e se il risultato è 375 si sa che l'utente sia in grado 375.

Altri suggerimenti

L'unico modo affidabile mi viene in mente è la costruzione del ranking in corrispondenza dell'indice in tempo, vale a dire avere un "rango" intero campo e popolarlo quando si genera l'indice. Il rovescio della medaglia è che ogni aggiornamento richiede ricostruire l'intero indice.

Lucene ID documenti non sono stabili, non lo consiglio li utilizzano per questo (vedi questo , questo , questo ), e Solr non espone comunque.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top