전문(full-text) 쿼리
전문(full-text) 쿼리
전문 쿼리는 검색 전에 쿼리 문자열을 분석하므로, text 필드에서 자연어 검색에 적합해요. 정교한 검색 동작을 만들 수 있는 선택 필드가 많으므로, 여러 옵션을 사용한 더 고급·복잡한 검색을 수행하기 전에 몇 가지 기본 쿼리 타입을 대표 인덱스에서 테스트하고 출력을 검증해 볼 것을 권장합니다.
출처: 문서
본문
전문 쿼리는 검색 전에 쿼리 문자열을 분석하므로, text 필드에서 자연어 검색에 적합해요. 세밀한 검색 동작을 만들 수 있는 많은 선택 필드가 있으므로, 여러 옵션을 사용하는 더 고급·복잡한 검색을 수행하기 전에 몇 가지 기본 쿼리 타입을 대표 인덱스에 대해 테스트하고 출력을 검증해 볼 것을 권장해요.
OpenSearch는 Apache Lucene 검색 라이브러리를 사용하며, 이는 데이터를 수집, 인덱싱, 검색, 집계하기 위한 고효율 데이터 구조와 알고리즘을 제공해요.
검색 쿼리 클래스에 대해 더 알아보려면 Lucene query JavaDocs를 참조하세요.
이 섹션에서 보여주는 전문 쿼리 타입들은 표준 분석기(standard analyzer)를 사용하며, 쿼리가 제출될 때 텍스트를 자동으로 분석해요.
다음 표는 모든 전문 쿼리 타입을 나열해요.
| 쿼리 타입 | 설명 |
|---|---|
match |
기본 전문 쿼리. 퍼지 매칭과 구문 또는 근접 검색에 사용할 수 있음. |
match_phrase |
match 쿼리와 비슷하지만 구성 가능한 slop까지의 전체 구문을 매칭함. |
match_phrase_prefix |
match_phrase 쿼리와 비슷하지만 용어를 전체 구문으로 매칭하고 마지막 용어를 접두사로 취급함. |
match_bool_prefix |
어느 위치에서든 모든 용어를 매칭하는 Boolean 쿼리를 만들고 마지막 용어를 접두사로 취급함. |
multi_match |
match 쿼리와 비슷하지만 여러 필드에서 사용됨. |
combined_fields |
더 나은 관련성 점수를 위해 BM25F를 사용해 여러 text 필드를 단일 필드로 취급함. |
simple_query_string |
query_string 쿼리의 더 간단하고 덜 엄격한 버전. |
query_string |
엄격한 구문을 사용해 단일 쿼리 문자열 안에서 Boolean 조건과 다중 필드 검색을 지정함. |
intervals |
일치 용어의 근접성과 순서를 세밀하게 제어함. |