Ho documenti che assomigliano a questo (qui sono due esempi):elasticsearch ordina per singolo tasto documento nidificato in ordine di
{
"id": 1234,
"title": "the title",
"body": "the body",
"examples": [
{
"evidence_source": "friend",
"source_score": 15
},
{
"evidence_source": "parent",
"source_score": 12
}
]
}
e
{
"id": 6346,
"title": "new title",
"body": "lots of content",
"examples": [
{
"evidence_source": "friend",
"source_score": 10
},
{
"evidence_source": "parent",
"source_score": 27
},
{
"evidence_source": "child",
"source_score": 4
}
]
}
Il formato dei sub-documenti nella L'array examples
avrà sempre un evidence_source
e un source_score
ma ci sarà una quantità variabile di questi sotto-documenti, ognuno con valori diversi evidence_source
.
Mi chiedo se sia possibile ordinare i documenti con questo formato basato su uno dei valori source_score
abbinato a un valore specifico evidence_source
. Mi piacerebbe davvero essere in grado di fare questo:
- documenti Scelta per
source_score
discendente in cui il relativoevidence_source
èfriend
. L'ordinamento risultante del documentoid
s sarebbe 1234,6346. - Ordinare i documenti per
source_score
discendente dove il relativoevidence_source
èparent
. L'ordinamento risultante del documentoid
s sarebbe 6346,1234.
I risultati più vicini che sto venuta in mente per fare qualcosa come questo sono 1 e 2, ma non credo che ottengono esattamente quello che voglio fare.
Qualche idea su come potrei fare questo? Ho preso in considerazione alcune idee basate sull'indicizzazione di questi sotto-documenti examples
separatamente, ma sono abbastanza nuovo per elasticsearch e sono quindi alla ricerca di alcuni consigli su come raggiungere il mio obiettivo nel modo più diretto (che potrebbe essere un sognare ...)
Aggiornamento: Un post sul elasticsearch mailing list sembra indicare che questo non è possibile, ma mi chiedo se qualcun altro ha qui tutte le idee diverse!
Sono documenti secondari mappati come documenti annidati o come oggetti? Quanti record pensi di avere nel tuo indice? – imotov
Al momento, in realtà non li sto mappando proprio per niente, ma sono disposto a provare a sperimentare con mappature diverse per arrivare alla funzionalità che sto cercando. Mi aspetto un ordine di 100 milioni di record totali memorizzati. –
Quanti tipi diversi di evidence_source hai intenzione di avere? – imotov