標籤:org gre pos java match count setter val 查詢語句
Elasticsearch6.0 Java API 重大變化
最近做的項目中用到了Elasticsearch,ES的版本迭代速度非常快,在此記錄一下官方公布的6.0版本的重大變化
setSource()方法需要XContentType
以前setSource方法和其他的接受byte/string類型作為對象源的方法,可以不需要指定XContentType,
自動檢測內容類型已經不再使用,現在當提供bytes或者string類型的source的時候,這些方法需指定XContentType
作為附加參數
DeleteByQueryRequest需要一個明確的查詢語句(query)
在Elasticsearch以前的版本中,DeleteByQueryRequest允許不設定一個明確的query,
預設使用match_all語句(query)並且所有文檔會被刪除,從6.0.0版本開始,
DeleteByQueryRequest需要設定一個明確的匹配語句(query)
InternalStats和Stats的 getCountAsString()方法被移除
- count值在統計彙總中表示的是命中的文檔的count值,這個值不需要格式化為String的版本,
這個方法在5.4版本不贊成使用,
- 如果需要String類型的count值,使用String.valueOf(getCount())代替
ActionRequestBuilder#execute傳回值改為ActionFuture
當通過request builders(client.prepareSearch().execute())來發送一個請求時,
可能會去再次調用 addListener 返回 ListenableActionFuture。伴隨此次變化,傳回值被現在
作為client方法返回的統一的ActionFuture取代,因此,可能不需要聯絡監聽器的期望,
execute方法接受一個監聽器(listener)作為參數來取代之前的方法
Terms.Order和Histogram.Order類被BucketOrder取代
terms、histogram、date_histogram等彙總的代碼已經重構,去使用排序桶的公用代碼。
必須使用BucketOrder類來取代Terms.Order和Histogram.Order。
必須調用Bucket.Order類的靜態方法來代替直接存取Order內部執行個體(BucketOrder.count(boolean),BucketOrder.aggregation(String,boolean))的做法。
使用BucketOrder.key(boolean) 依靠 _term 來排序 terms彙總的桶(buckets)
getTookInMillis()方法在BuilkReponse、SearchResponse和TermVectorResponse中移除
在BulkResponse、SearchResponse和TermVectorResponse類中,getTookInMillis()方法已經被移除,
getTookInMillis()方法很早就被getTook().getMillis()取代了
GetField和SearchHitField被DocumentField取代
原GetField和SearchField類有相同的成員變數和方法,現在統一為DocumentField
一些Aggregation的class檔案所屬包變化
- 一些關於排序彙總(geo_distance,date,ip)的衍生class檔案被移動到
org.elasticsearch.search.aggregations.bucket.range包下。
- 原所屬org.elasticsearch.search.aggregations.bucket.terms.support包下的class檔案
移動到org.elasticsearch.search.aggregations.bucket.terms包下
- Filter Aggregation 的類檔案 已經移動到org.elasticsearch.search.aggregations.bucket.filter包下
PercentileRanksAggregationBuilder建構函式變化
百分位排行彙總,現在需要將希望排序的非空非null的double數組,傳入builder的建構函式,
而不是通過setter來配置,以前對應的setter values()方法已經被移除
Elasticsearch6.0 重大變化之Java API