package moe.odango.index.utils import io.inbot.eskotlinwrapper.MapBackedProperties import io.inbot.eskotlinwrapper.dsl.ESQuery class NestedQuery : ESQuery(name = "nested") { var path: String by queryDetails.property() var ignoreUnmapped: Boolean by queryDetails.property() var innerHits: Map by queryDetails.property() var scoreMode: ScoreMode by queryDetails.property() var query: ESQuery by queryDetails.esQueryProperty() } fun nested(path: String, config: NestedQuery.() -> Unit): NestedQuery { val q = NestedQuery() q.path = path config(q) return q } @Suppress("EnumEntryName") enum class ScoreMode { avg, max, min, none, sum }