2.X/8. Breaking Changes

v2.1-01. Search changes

drscg 2017. 10. 15. 18:39

search_type=scan deprecatededit

The scan search type has been deprecated. All benefits from this search type can now be achieved by doing a scroll request that sorts documents in _doc order, for instance:

scan search type은 deprecate되었다. 이 search type으로 할 수 있는 것은 _doc 의 순서로 document를 정렬하는 scroll request로 가능하다. 예를 들어

GET /my_index/_search?scroll=2m
{
  "sort": [
    "_doc"
  ]
}

Scroll requests sorted by _doc have been optimized to more efficiently resume from where the previous request stopped, so this will have the same performance characteristics as the former scansearch type.

_doc 으로 정렬된 scroll request는 이전 request가 중지되었던 곳에서 더 효율적으로 다시 시작하도록 최적화되어 있어서 이전의 scan search type과 동일한 성능 특성을 갖게 된다.

search_type=count deprecatededit

The count search type has been deprecated. All benefits from this search type can now be achieved by setting size to 0, for instance:

count search type은 deprecate되었다. 이 search type으로 할 수 있는 것은 size 를 0 으로 설정함으로써 가능하다. 예를 들면

GET /my_index/_search
{
  "aggs": {...},
  "size": 0
}

from + size limitsedit

Elasticsearch will now return an error message if a query’s from + size is more than the index.max_result_window parameter. This parameter defaults to 10,000 which is safe for almost all clusters. Values higher than can consume significant chunks of heap memory per search and per shard executing the search. It’s safest to leave this value as it is and use the scroll api for any deep scrolling but this setting is dynamic so it can raised or lowered as needed.

Elasticsearch는 query의 from + size 가 index.max_result_window parameter보다 큰 경우 error 메시지를 반환한다. 이 parameter의 기본값은 10,000으로 거의 모든 클러스터에서 안전하다. 이 값보다 높은 값은 searh 별로 그리고 search를 실행하는 shard별로 heap memory를 상당 부분 차지한다. 이 값을 그대로 두고 deep scrolling에 scroll API를 사용하는 것이 가장 좋지만, 이 설정은 동적이므로 필요에 따라 올리거나 내릴 수 있다.

Nested sortingedit

If sorting on field inside a nested object then the nested_path should be specified. Before there was an attempt to resolve the nested path automatically, but that was sometimes incorrect. To avoid confusion the nested_path should always be specified.

nested object 내부의 field를 정렬하려면 nested_path 가 지정되어야 한다. 전에 자동으로 nested path를 해결하려는 시도가 있었지만 가끔 부정확했다. 혼동을 피하기 위해 nested_path 가 항상 지정되어야 한다.

More Like Thisedit

The MoreLikeThisQueryBuilder#ignoreLike methods have been deprecated in favor of using the unlike methods.

unlike method 사용을 위하여 MoreLikeThisQueryBuilder#ignoreLike method는 deprecate되었다.

MoreLikeThisBuilder#addItem has been deprecated in favor of using MoreLikeThisBuilder#addLikeItem.

MoreLikeThisBuilder#addLikeItem 사용을 위하여 MoreLikeThisBuilder#addItem 은 deprecate되었다.


'2.X > 8. Breaking Changes' 카테고리의 다른 글

v2.2 Breaking changes  (0) 2017.10.15
v2.1 Breaking changes  (0) 2017.10.15
v2.1-02. Update changes  (0) 2017.10.15
v2.1-03. Index APIs  (0) 2017.10.15
v2.1-04. Removed features  (0) 2017.10.15