tengo documentos que se parecen a esto (aquí son dos ejemplos):Elasticsearch ordenar por sola tecla documento anidada en orden
{
"id": 1234,
"title": "the title",
"body": "the body",
"examples": [
{
"evidence_source": "friend",
"source_score": 15
},
{
"evidence_source": "parent",
"source_score": 12
}
]
}
y
{
"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
}
]
}
El formato de los sub-documentos en el examples
matriz siempre tendrá un evidence_source
y un source_score
pero habrá una cantidad variable de estos subdocumentos, cada uno con valores diferentes evidence_source
.
Me pregunto si es posible ordenar documentos con este formato en función de uno de los valores source_score
que coincidan con un valor específico de evidence_source
. Realmente me gustaría ser capaz de hacer esto:
- Ordenar documentos por
source_score
descendente donde el relacionadoevidence_source
esfriend
. El orden resultante del documentoid
s sería 1234,6346. - Ordenar documentos por
source_score
descendiendo dondeevidence_source
relacionado esparent
. El orden resultante del documentoid
s sería 6346,1234.
Los resultados más próximos que estoy ocurre para hacer algo como esto son 1 y 2 pero no creen que consiguen exactamente lo que yo quiero hacer.
¿Alguna idea sobre cómo podría hacer esto? He contemplado algunas ideas basadas en la indexación de estos subdocumentos examples
por separado, pero soy bastante nuevo en elasticsearch y, por lo tanto, estoy buscando algún consejo sobre cómo lograr mi objetivo de la manera más directa (que puede ser una pipeta). soñar ...)
actualización: Un post en el elasticsearch mailing list parece indicar que esto no es posible, pero me pregunto si alguien aquí tiene alguna idea diferente! se añadió
¿Se asignan subdocumentos como documentos anidados o como objetos? ¿Cuántos registros espera tener en su índice? – imotov
En este momento, en realidad no los estoy mapeando en absoluto, pero estoy dispuesto a intentar experimentar con diferentes asignaciones para llegar a la funcionalidad que estoy buscando. Estoy esperando en el orden de 100 millones de registros almacenados. –
¿Cuántos tipos diferentes de evidence_source está planeando tener? – imotov