Sto lavorando a un'app simile a Tinder. In ElasticSearch ho una collezione di circa mezzo milione di utenti e le loro posizioni). Ogni volta che l'utente apre l'app per cercare utenti nelle vicinanze eseguo una query di ricerca elastica su quella raccolta. La query è abbastanza complessa, prende in considerazione non solo la posizione, ma anche quanto è attivo l'utente o quante foto ha.Come escludere un numero elevato di ID da una query di ricerca elastica
Quello che mi fa fatica è come escludere quegli utenti che l'utente corrente ha già sfogliato dalla query. Un modo ingenuo per implementare questo sarebbe probabilmente quello di mantenere un array annidato di ID utente come parte di ogni documento utente nell'indice ed escludere in base a ciò. Ma dato che ogni utente fa decine di migliaia di colpi, quella matrice potrebbe potenzialmente diventare molto grande, quindi non è una soluzione scalabile.
Esiste un modo per escludere un numero elevato di entità da una query di ricerca elastica basata sui rispettivi ID che non danneggia la performance?
Wow, sembra fantastico, grazie! –
Funziona come un fascino! Quindi entrambe le risposte risolvono sufficientemente il mio problema, ma sto selezionando questo come risposta corretta perché è una soluzione un po 'più elegante. Grazie mille –
Per il beneficio delle persone che verranno a questa domanda in futuro, sarebbe bello vedere la soluzione al lavoro, che implementa il meccanismo di ricerca dei termini. – Val