Elasticsearch6.0 重大變化之Java API

來源:互聯網
上載者:User

標籤: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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.