Se ho un documenti come questo:Esiste un modo per non restituire gli array quando si specificano i campi di restituzione in una query Elasticsearch?
[
{
"model": "iPhone",
"brand": "Apple"
},
{
"model": "Nexus 5",
"brand": "Google"
}
]
E che faccio una query che restituisce solo il campo model
in una query, come questo:
{
"fields": ["model"],
"query": {
"term": {
"brand": "apple"
}
}
}
Poi ogni campo documento viene restituito entro un array come questo:
{ "model": ["iPhone"] }
anziché
{ "model": "iPhone" }
Come posso evitarlo e ottenere i campi nello stesso formato di quando l'opzione di query fields
non è definita?
10 upvotes se potessi – tyler
@tyler Haha, io sono contento che ti ha aiutato! –
No, non ti meriti nessun upvotes, perché la tua risposta è fuorviante - l'uso del parametro Fields è molto più efficiente dell'uso di _souce (salva IO del disco e CPU perché non deve analizzare la _source). Mi piacerebbe davvero sapere come restituire i campi del documento usando la definizione Fields nello stesso formato in cui sono stati forniti al momento dell'indicizzazione. Può salvarmi un'intera iterazione (che può essere su un sacco di documenti) solo per rimuovere quegli array ... –