OpenSearch 엔진의 match_phrase_prefix 질의에 매핑돼요. 지정된 필드가 마지막 용어에 대한 접두사 일치를 사용해 제공된 텍스트와 일치하는 문서를 반환해요.
Parameters:
<field_expression> (Required): 검색할 필드예요.
<query_expression> (Required): 마지막 용어에 대한 접두사 일치를 사용해 일치시킬 텍스트예요.
(Optional):
= 쌍으로 지정되는 추가 옵션이에요. 다음 옵션을 사용할 수 있어요. analyzer: 질의에 사용할 분석기를 지정해요. slop: 일치하는 용어 사이의 최대 위치 수예요. max_expansions: 마지막으로 제공된 용어가 확장될 수 있는 최대 용어 수예요. boost: 관련성 점수를 낮추거나 높이는 데 사용되는 부동소수점 값이에요. zero_terms_query: 분석기가 모든 토큰을 제거했을 때 반환할 내용이에요.
=
analyzer: 질의에 사용할 분석기를 지정해요.
slop: 일치하는 용어 사이의 최대 위치 수예요.
max_expansions: 마지막으로 제공된 용어가 확장될 수 있는 최대 용어 수예요.
boost: 관련성 점수를 낮추거나 높이는 데 사용되는 부동소수점 값이에요.
zero_terms_query: 분석기가 모든 토큰을 제거했을 때 반환할 내용이에요.
Return type: BOOLEAN
Examples
다음 예시는 필수 파라미터만 사용하며, 모든 선택 파라미터는 기본값으로 두었어요.
source=books
| where match_phrase_prefix(author, 'Alexander Mil')
| fields author, title
질의는 다음과 같은 결과를 반환해요.
author
title
Alan Alexander Milne
The House at Pooh Corner
Alan Alexander Milne
Winnie-the-Pooh
다음 예시는 선택 파라미터에 사용자 지정 값을 설정하는 방법을 보여줘요.
source=books
| where match_phrase_prefix(author, 'Alan Mil', slop = 2)
| fields author, title
OpenSearch 엔진의 multi_match query에 매핑돼요. 하나 이상의 지정된 필드가 제공된 텍스트, 숫자, 날짜, 또는 Boolean 값과 일치하는 문서를 반환해요.
두 가지 문법 형식이 지원돼요:
명시적 필드 포함 (클래식 문법): multi_match([field_list], query, ...)
필드 없음 (검색 기본 필드): multi_match(query, ...)
필드를 생략하면 질의는 index.query.default_field 설정이 지정한 필드에서 검색해요.
^ 기호를 사용해 특정 필드에 부스트를 줄 수 있어요. 부스트는 한 필드의 일치 항목을 다른 필드의 일치 항목보다 비중 있게 가중하는 배수예요. 필드는 큰따옴표, 작은따옴표, 백틱, 또는 따옴표 없이 지정할 수 있어요. 또한 "*"를 사용해 모든 필드를 검색할 수 있어요(별표 기호는 반드시 따옴표로 감싸야 해요). 부스트 값은 선택 사항이며 필드 이름 뒤에 ^ 문자 또는 공백으로 구분해 지정해요.
<field_expression+> (Optional): 선택적 부스트 값을 포함한 검색 필드 목록이에요.
<query_expression> (Required): 일치시킬 텍스트, 숫자, 날짜, 또는 Boolean 값이에요.
(Optional):
= 쌍으로 지정되는 추가 옵션이에요. 다음 옵션을 사용할 수 있어요. analyzer: 질의에 사용할 분석기를 지정해요. auto_generate_synonyms_phrase: 동의어 구문 질의를 자동 생성할지 여부예요. cutoff_frequency: 고빈도 용어를 질의에 넣을 수 있게 해줘요. fuzziness: 퍼지 일치 동작을 제어해요. fuzzy_transpositions: 퍼지 일치에 인접한 두 문자의 전위를 포함할지 여부예요. lenient: 형식 기반 실패를 무시할지 여부예요. max_expansions: 질의가 확장될 수 있는 최대 용어 수예요. minimum_should_match: 일치해야 하는 최소 절 수예요. operator: 질의 값의 텍스트를 해석하는 데 사용되는 Boolean 논리예요. prefix_length: 퍼지 일치를 위해 변경되지 않은 채 남는 시작 문자 수예요. tie_breaker: 동일한 관련성을 가진 필드의 타이브레이커로 사용할 0.0과 1.0 사이의 값이에요. type: multi_match 질의가 내부적으로 실행되는 방식이에요. slop: 일치하는 용어 사이의 최대 위치 수예요(구문 질의용). boost: 관련성 점수를 낮추거나 높이는 데 사용되는 부동소수점 값이에요.
=
analyzer: 질의에 사용할 분석기를 지정해요.
auto_generate_synonyms_phrase: 동의어 구문 질의를 자동 생성할지 여부예요.
cutoff_frequency: 고빈도 용어를 질의에 넣을 수 있게 해줘요.
fuzziness: 퍼지 일치 동작을 제어해요.
fuzzy_transpositions: 퍼지 일치에 인접한 두 문자의 전위를 포함할지 여부예요.
lenient: 형식 기반 실패를 무시할지 여부예요.
max_expansions: 질의가 확장될 수 있는 최대 용어 수예요.
minimum_should_match: 일치해야 하는 최소 절 수예요.
operator: 질의 값의 텍스트를 해석하는 데 사용되는 Boolean 논리예요.
prefix_length: 퍼지 일치를 위해 변경되지 않은 채 남는 시작 문자 수예요.
tie_breaker: 동일한 관련성을 가진 필드의 타이브레이커로 사용할 0.0과 1.0 사이의 값이에요.
OpenSearch 엔진의 simple_query_string 질의에 매핑돼요. 하나 이상의 지정된 필드가 제공된 텍스트, 숫자, 날짜, 또는 Boolean 값과 일치하는 문서를 반환해요.
두 가지 문법 형식이 지원돼요:
명시적 필드 포함 (클래식 문법): simple_query_string([field_list], query, ...)
필드 없음 (검색 기본 필드): simple_query_string(query, ...)
필드를 생략하면 질의는 index.query.default_field 설정이 지정한 필드에서 검색해요.
^ 기호를 사용해 특정 필드에 부스트를 줄 수 있어요. 부스트는 한 필드의 일치 항목을 다른 필드의 일치 항목보다 비중 있게 가중하는 배수예요. 필드는 큰따옴표, 작은따옴표, 백틱, 또는 따옴표 없이 지정할 수 있어요. 또한 "*"를 사용해 모든 필드를 검색할 수 있어요(별표 기호는 반드시 따옴표로 감싸야 해요). 부스트 값은 선택 사항이며 필드 이름 뒤에 ^ 문자 또는 공백으로 구분해 지정해요.
<field_expression+> (Optional): 선택적 부스트 값을 포함한 검색 필드 목록이에요.
<query_expression> (Required): 일치시킬 텍스트, 숫자, 날짜, 또는 Boolean 값이에요.
(Optional):
= 쌍으로 지정되는 추가 옵션이에요. 다음 옵션을 사용할 수 있어요. analyze_wildcard: 와일드카드 및 접두사 질의를 분석할지 여부예요. analyzer: 질의에 사용할 분석기를 지정해요. auto_generate_synonyms_phrase: 동의어 구문 질의를 자동 생성할지 여부예요. flags: 연산자를 활성화할 simple query string 플래그예요. fuzziness: 퍼지 일치 동작을 제어해요. fuzzy_max_expansions: 퍼지 질의가 확장될 수 있는 최대 용어 수예요. fuzzy_prefix_length: 퍼지 일치를 위해 변경되지 않은 채 남는 시작 문자 수예요. fuzzy_transpositions: 퍼지 일치에 인접한 두 문자의 전위를 포함할지 여부예요. lenient: 형식 기반 실패를 무시할지 여부예요. default_operator: 질의의 텍스트를 해석하는 데 사용되는 기본 Boolean 논리예요. minimum_should_match: 일치해야 하는 최소 절 수예요. quote_field_suffix: 질의 문자열에서 따옴표가 붙은 텍스트에 추가할 접미사예요. boost: 관련성 점수를 낮추거나 높이는 데 사용되는 부동소수점 값이에요.
=
analyze_wildcard: 와일드카드 및 접두사 질의를 분석할지 여부예요.
analyzer: 질의에 사용할 분석기를 지정해요.
auto_generate_synonyms_phrase: 동의어 구문 질의를 자동 생성할지 여부예요.
flags: 연산자를 활성화할 simple query string 플래그예요.
fuzziness: 퍼지 일치 동작을 제어해요.
fuzzy_max_expansions: 퍼지 질의가 확장될 수 있는 최대 용어 수예요.
fuzzy_prefix_length: 퍼지 일치를 위해 변경되지 않은 채 남는 시작 문자 수예요.
fuzzy_transpositions: 퍼지 일치에 인접한 두 문자의 전위를 포함할지 여부예요.
lenient: 형식 기반 실패를 무시할지 여부예요.
default_operator: 질의의 텍스트를 해석하는 데 사용되는 기본 Boolean 논리예요.
minimum_should_match: 일치해야 하는 최소 절 수예요.
quote_field_suffix: 질의 문자열에서 따옴표가 붙은 텍스트에 추가할 접미사예요.
OpenSearch 엔진의 match_bool_prefix 질의에 매핑돼요. 지정된 필드가 제공된 텍스트와 일치하는 문서를 반환하며, 마지막 용어를 제외한 모든 용어는 정확히 일치하고 마지막 용어는 접두사로 취급돼요.
Parameters:
<field_expression> (Required): 검색할 필드예요.
<query_expression> (Required): 일치시킬 텍스트로, 마지막 용어가 접두사로 취급돼요.
(Optional):
= 쌍으로 지정되는 추가 옵션이에요. 다음 옵션을 사용할 수 있어요. analyzer: 질의에 사용할 분석기를 지정해요. fuzziness: 퍼지 일치 동작을 제어해요. max_expansions: 질의가 확장될 수 있는 최대 용어 수예요. prefix_length: 퍼지 일치를 위해 변경되지 않은 채 남는 시작 문자 수예요. fuzzy_transpositions: 퍼지 일치에 인접한 두 문자의 전위를 포함할지 여부예요. operator: 질의 값의 텍스트를 해석하는 데 사용되는 Boolean 논리예요. fuzzy_rewrite: 질의를 다시 쓰는 데 사용되는 방법이에요. minimum_should_match: 일치해야 하는 최소 절 수예요. boost: 관련성 점수를 낮추거나 높이는 데 사용되는 부동소수점 값이에요.
=
analyzer: 질의에 사용할 분석기를 지정해요.
fuzziness: 퍼지 일치 동작을 제어해요.
max_expansions: 질의가 확장될 수 있는 최대 용어 수예요.
prefix_length: 퍼지 일치를 위해 변경되지 않은 채 남는 시작 문자 수예요.
fuzzy_transpositions: 퍼지 일치에 인접한 두 문자의 전위를 포함할지 여부예요.
operator: 질의 값의 텍스트를 해석하는 데 사용되는 Boolean 논리예요.
fuzzy_rewrite: 질의를 다시 쓰는 데 사용되는 방법이에요.
minimum_should_match: 일치해야 하는 최소 절 수예요.
boost: 관련성 점수를 낮추거나 높이는 데 사용되는 부동소수점 값이에요.
Return type: BOOLEAN
Examples
다음 예시는 필수 파라미터만 사용하며, 모든 선택 파라미터는 기본값으로 두었어요.
source=accounts
| where match_bool_prefix(address, 'Bristol Stre')
| fields firstname, address
OpenSearch 엔진의 query_string 질의에 매핑돼요. 하나 이상의 지정된 필드가 제공된 텍스트, 숫자, 날짜, 또는 Boolean 값과 일치하는 문서를 반환해요.
두 가지 문법 형식이 지원돼요:
명시적 필드 포함 (클래식 문법): query_string([field_list], query, ...)
필드 없음 (검색 기본 필드): query_string(query, ...)
필드를 생략하면 질의는 index.query.default_field 설정이 지정한 필드에서 검색해요.
^ 기호를 사용해 특정 필드에 부스트를 줄 수 있어요. 부스트는 한 필드의 일치 항목을 다른 필드의 일치 항목보다 비중 있게 가중하는 배수예요. 필드는 큰따옴표, 작은따옴표, 백틱, 또는 따옴표 없이 지정할 수 있어요. 또한 "*"를 사용해 모든 필드를 검색할 수 있어요(별표 기호는 반드시 따옴표로 감싸야 해요). 부스트 값은 선택 사항이며 필드 이름 뒤에 ^ 문자 또는 공백으로 구분해 지정해요.
<field_expression+> (Optional): 선택적 부스트 값을 포함한 검색 필드 목록이에요.
<query_expression> (Required): 일치시킬 텍스트, 숫자, 날짜, 또는 Boolean 값이에요.
(Optional):
= 쌍으로 지정되는 추가 옵션이에요. 다음 옵션을 사용할 수 있어요. analyzer: 질의에 사용할 분석기를 지정해요. escape: 질의 문자열에서 특수 문자를 이스케이프할지 여부예요. allow_leading_wildcard: 선행 와일드카드를 허용할지 여부예요. analyze_wildcard: 와일드카드 및 접두사 질의를 분석할지 여부예요. auto_generate_synonyms_phrase_query: 동의어 구문 질의를 자동 생성할지 여부예요. boost: 관련성 점수를 낮추거나 높이는 데 사용되는 부동소수점 값이에요. default_operator: 질의의 텍스트를 해석하는 데 사용되는 기본 Boolean 논리예요. enable_position_increments: 결과 질의에서 위치 증분을 활성화할지 여부예요. fuzziness: 퍼지 일치 동작을 제어해요. fuzzy_max_expansions: 퍼지 질의가 확장될 수 있는 최대 용어 수예요. fuzzy_prefix_length: 퍼지 일치를 위해 변경되지 않은 채 남는 시작 문자 수예요. fuzzy_transpositions: 퍼지 일치에 인접한 두 문자의 전위를 포함할지 여부예요. fuzzy_rewrite: 퍼지 질의를 다시 쓰는 데 사용되는 방법이에요. tie_breaker: 동일한 관련성을 가진 필드의 타이브레이커로 사용할 0.0과 1.0 사이의 값이에요. lenient: 형식 기반 실패를 무시할지 여부예요. type: query_string 질의가 내부적으로 실행되는 방식이에요. max_determinized_states: regexp 또는 퍼지 질의에 대한 최대 오토마톤 상태 수예요. minimum_should_match: 일치해야 하는 최소 절 수예요. quote_analyzer: 질의 문자열에서 따옴표가 붙은 텍스트에 사용할 분석기예요. phrase_slop: 질의 문자열로 만든 구문 질의의 기본 slop이에요. quote_field_suffix: 질의 문자열에서 따옴표가 붙은 텍스트에 추가할 접미사예요. rewrite: 질의를 다시 쓰는 데 사용되는 방법이에요. time_zone: 날짜 범위 질의에 사용할 시간대예요.
=
analyzer: 질의에 사용할 분석기를 지정해요.
escape: 질의 문자열에서 특수 문자를 이스케이프할지 여부예요.
allow_leading_wildcard: 선행 와일드카드를 허용할지 여부예요.
analyze_wildcard: 와일드카드 및 접두사 질의를 분석할지 여부예요.
auto_generate_synonyms_phrase_query: 동의어 구문 질의를 자동 생성할지 여부예요.
boost: 관련성 점수를 낮추거나 높이는 데 사용되는 부동소수점 값이에요.
default_operator: 질의의 텍스트를 해석하는 데 사용되는 기본 Boolean 논리예요.
enable_position_increments: 결과 질의에서 위치 증분을 활성화할지 여부예요.
fuzziness: 퍼지 일치 동작을 제어해요.
fuzzy_max_expansions: 퍼지 질의가 확장될 수 있는 최대 용어 수예요.
fuzzy_prefix_length: 퍼지 일치를 위해 변경되지 않은 채 남는 시작 문자 수예요.
fuzzy_transpositions: 퍼지 일치에 인접한 두 문자의 전위를 포함할지 여부예요.
fuzzy_rewrite: 퍼지 질의를 다시 쓰는 데 사용되는 방법이에요.
tie_breaker: 동일한 관련성을 가진 필드의 타이브레이커로 사용할 0.0과 1.0 사이의 값이에요.
lenient: 형식 기반 실패를 무시할지 여부예요.
type: query_string 질의가 내부적으로 실행되는 방식이에요.
max_determinized_states: regexp 또는 퍼지 질의에 대한 최대 오토마톤 상태 수예요.
minimum_should_match: 일치해야 하는 최소 절 수예요.
quote_analyzer: 질의 문자열에서 따옴표가 붙은 텍스트에 사용할 분석기예요.
phrase_slop: 질의 문자열로 만든 구문 질의의 기본 slop이에요.
quote_field_suffix: 질의 문자열에서 따옴표가 붙은 텍스트에 추가할 접미사예요.
source=books
| where query_string('Pooh House')
| fields id, title, author
질의는 다음과 같은 결과를 반환해요.
id
title
author
1
The House at Pooh Corner
Alan Alexander Milne
2
Winnie-the-Pooh
Alan Alexander Milne
제한 사항 (Limitations)
관련성 함수는 메모리 내(in-memory)가 아니라 OpenSearch 질의 DSL에서만 실행돼요. 특히 관련성 함수가 복잡한 PPL 연산 뒤에 오는 경우, 질의가 DSL로 변환되기에 너무 복잡하면 관련성 검색이 실패할 수 있어요.
올바른 실행을 보장하려면 관련성 함수를 search 명령에 최대한 가깝게 배치하세요. 그러면 함수가 푸시다운 최적화 대상이 될 가능성이 높아져요.
문제가 되는 질의 구조 예시:
search source = people
| rename firstname as name
| dedup account_number
| fields name, account_number, balance, employer
| where match(employer, 'Open Search')
| stats count() by city
함수가 OpenSearch DSL에서 최적화되고 실행될 수 있도록 관련성 함수를 포함한 where 명령을 search 명령 바로 뒤에 배치하세요.
권장되는 질의 구조:
search source = people
| where match(employer, 'Open Search')
| rename firstname as name
| dedup account_number
| fields name, account_number, balance, employer
| stats count() by city