In Elasticsearch ist es besser, 50 Felder in 1.000.000 Dokumenten oder 1 Feld in 50.000.000 Dokumenten abzufragen. Ich werde mein Problem mit einem Beispiel erklären:Elasticsearch Dokumentstruktur zur Leistungsoptimierung
Für den Fall 1, unsere doc wie folgt aussieht:
doc1: {
"f1": "abc",
"f2": "pqr",
"f3": "lmn",
...
"f50": "xyz"
}
hier ein sollte von „f1“ bis „F50“ durchgeführt werden abfragt.
Für Fall 2 wird unsere doc wie folgt aussehen:
doc1.1: {
"f": "abc"
}
doc1.2: {
"f": "pqr"
}
doc1.3: {
"f": "lmn"
}
...
...
doc1.50: {
"f": "xyz"
}
Sagen wir einfach, ich bin besorgt über die docs den abgefragten Wert unabhängig von dem Feld enthält.
Es gibt so viele Unbekannte (Anzahl der Shards, Anzahl der Knoten, ist es ein Cache-Filter, ...), dass ich glaube nicht, dass Sie eine autoritative Antwort bekommen können. IMO, das sollte klein genug sein, dass es keinen großen Unterschied macht, und du überdenkst es. Baue es einfach und wenn es explodiert/langsam wird, denke über das Refactoring nach. Wenn Sie nur wenige GB Daten haben und reguläre Abfragen verwenden, sollte dies nicht notwendig sein. – xeraa