5.X/8. Breaking Changes

v5.0-04. Suggester changes

drscg 2017. 10. 23. 21:20

The completion suggester has undergone a complete rewrite. This means that the syntax and data structure for fields of type completion have changed, as have the syntax and response of completion suggester requests. See completion suggester for details.

자동완성(completion suggester)은 완전히 다시 작성되었다. 즉, completion type의 field에 대한 구문 및 데이터 구조가 변경되었고, 이에 따라 completion suggester request에 구문 및 response가 변경되다. 자세한 내용은 completion suggester를 참조하자.

For indices created before Elasticsearch 5.0.0, completion fields and the completion suggester will continue to work as they did in Elasticsearch 2.x. However, it is not possible to run a completion suggester query across indices created in 2.x and indices created in 5.x.

Elasticsearch 5.0.0 이전에 생성된 indices의 경우 completion field와 completion suggester는 Elasticsearch 2.x 에서와 마찬가지로 계속 동작한다. 그러나 2.x에서 생성된 indices와 5.x에서 생성된 indices간에 completion suggester query를 실행할 수는 없다.

It is strongly recommended to reindex indices containing 2.x completion fields in 5.x to take advantage of the new features listed below.

아래 나열된 새로운 기능을 이용하려면 5.x 에서 2.x completion field가 포함하고 있는 indices를 다시 index하는 것을 강력히 추천한다.

Note

You will need to change the structure of the completion field values when reindexing.

다시 색인 할 때 completion field 값의 구조를 변경해야 한다.

Completion suggester is near-real timeedit

Previously, deleted suggestions could be included in results even after refreshing an index. Now, deletions are visible in near-real time, i.e. as soon as the index has been refreshed. This applies to suggestion entries for both context and completion suggesters.

이전에는 index색인을 refresh한 후에도 삭제된 suggestion이 결과에 포함될 수 있었다. 이제 삭제가 거의 실시간(near-real time)으로 표시된다. 즉, index가 refresh되자 마자. 이것은 context 및 completion suggester에 대한 suggestion entry에 적용된다.

Completion suggester is document-orientededit

Suggestions are aware of the document they belong to. Now, associated documents (_source) are returned as part of completion suggestions.

suggestion은 그들을 포함하고 있는 document를 알고 있다. 이제 관련 documents(_source)가 completion suggestion의 일부로 return된다.

Important

_source meta-field must be enabled, which is the default behavior, to enable returning _source with suggestions.

_source meta-field가 활성화되어야 한다. 이것이 suggestion과 함께 _source 의 return을 활성화하는 기본 동작 방식이다.

Previously, context and completion suggesters supported an index-time payloads option, which was used to store and return metadata with suggestions. Now metadata can be stored as part of the the same document as the suggestion for retrieval at query-time. The support for index-time payloads has been removed to avoid bloating the in-memory index with suggestion metadata.

이전에는 context 와 completion suggester는 metadata를 저장하고 return하는데 사용된 index-time payloads 옵션을 지원했다. 이제 metadata는 query-time에 검색을 위한 suggestion으로 동일한 document의 일부로 저장될 수 있다. suggestion metadata로 in-memory index가 팽창하는 것을 피하기 위하여 index-time payloads 에 대한 지원이 제거되었다.

Simpler completion indexingedit

As suggestions are document-oriented, suggestion metadata (e.g. output) should now be specified as a field in the document. The support for specifying output when indexing suggestion entries has been removed. Now suggestion result entry’s text is always the un-analyzed value of the suggestion’s input (same as not specifying output while indexing suggestions in pre-5.0 indices).

suggestion은 document-oriented이므로 suggestion metadata(예: output)는 document의 field로 지정되어야 한다. suggestion entry을 index할 때 output 을 지정하는 것에 대한 지원이 제거되었다. 이제 suggestion 결과 entry의 text 는 항상 suggestion input 의 un-analyzed 값이다 (5.0 이전의 indices에서 suggestion을 index하면서 output 을 지정하지 않는 것과 동일하다).

Completion mapping with multiple contextsedit

The context option in completion field mapping is now an array to support multiple named contexts per completion field. Note that this is sugar for indexing same suggestions under different name with different contexts. The default option for a named context has been removed. Now querying with no context against a context-enabled completion field yields results from all indexed suggestions. Note that performance for match-all-context query degrades with the number of unique context value for a given completion field.

completion field mapping에서 context option은 이제 completion field별로 여러 개의 명명된 context를 지원하는 배열이다. 다른 context를 가지고 다른 이름으로 동일한 suggestion을 index하기 위한 것임을 기억하자. 명명된 context 에 대한 default option이 제거되었다. 이제 context가 활성화된 completion field에 대해 context 가 없는 query를 하면 index된 모든 제안이 결과가 된다. match-all-context query에 대한 성능은 주어진 completion field에 대한 유일한 context 값의 수와 함께 저하된다는 점에 유의하자.

Completion suggestion with multiple context filteringedit

Previously context option in a suggest request was used for filtering suggestions by context value. Now, the option has been named to contexts to specify multiple named context filters. Note that this is not supported by pre-5.0 indices. Following is the contexts snippet for a suggest query filtered by both color and location contexts:

이전에는 suggest request의 context option이 context 값에 의한 filtering suggestion에 사용되었다. 이제 이 option은 여러 개의 명명된 context filter를 지정하기 위해 contexts 로 명명되었다. 이것은 5.0 이전의 indices에서는 지원되지 않는다. 다음은 color 및 location context로 filtering된 suggest query에 대한 contexts snippet이다.

"contexts": {
  "color": [ {...} ],
  "location": [ {...} ]
}


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

v5.0-02. Mapping changes  (0) 2017.10.23
v5.0-03. Percolator changes  (0) 2017.10.23
v5.0-05. Index APIs changes  (0) 2017.10.23
v5.0-06. Document API changes  (0) 2017.10.23
v5.0-07. Settings changes  (0) 2017.10.22