Elasticsearch6.0 重大變化之Java API


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()方法已經被移除


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM