كيف يمكنني استخراج الحدود وأنواع الجمل من كود Scala هذا الذي يستعلم عن مجموعة بيانات JSON للكثافة السكانية في أكبر 10 مدن أمريكية من حيث عدد السكان؟ وهل يمكنك أيضًا توفير الكثافة السكانية في أكبر 10 مدن أمريكية من حيث عدد السكان؟
إليك رمز سكالا:
import org.elasticsearch.index.query.QueryBuilders
import org.elasticsearch.search.aggreations.AggregationBuilders
import org.elasticsearch.search.aggreations.bucket.terms.TermsAggregationBuilder
استيراد org.elasticsearch.search.aggreations.metrics.avg.AvgAggregationBuilder
استيراد org.elasticsearch.search.sort.SortBuilders
استيراد org.elasticsearch.search.sort.SortOrder
استعلام فال = QueryBuilders.boolQuery()
  .must(QueryBuilders.matchQuery("field1"، "value1"))
  .must(QueryBuilders.matchQuery("field2"، "value2"))
  .filter(QueryBuilders.rangeQuery("date").gte("2016-01-01").lte("2016-12-31"))
  .filter(QueryBuilders.termsQuery("field3"، "value3"، "value4"))
فال topCitiesAggregation: TermsAggregationBuilder = AggregationBuilders.terms("top_cities")
  .field("city.keyword")
  .مقاس 10)
  .subAggregation(AggregationBuilders.avg("الكثافة").field("population_density"))
فال searchResponse = client.prepareSearch("my_index")
  .setQuery(استعلام)
  .addSort(SortBuilders.fieldSort("population_density").order(SortOrder.DESC))
  .addAggregation(topCitiesAggregation)
  .ينفذ()
  .actionGet()
val topCities: List[String] = searchResponse.getAggregations.get("top_cities")
  .getBuckets
  .map(_.getKeyAsString)
  .لإدراج
كثافات val: Map[String, Double] = searchResponse.getAggregations.get("top_cities")
  .getBuckets
  .map(bucket => Bucket.getKeyAsString -> Bucket.getAggregations.get("density").asInstanceOf[Avg].getValue)
  .الى الخريطة
{"evolved_from": null, "kind": "synthetic", "source": "evol_instruct"}