span_first 쿼리
span_first 쿼리
span_first 쿼리는 필드의 시작 지점에서 시작해 지정된 위치 수 안에 끝나는 스팬을 매치해요. 이 쿼리는 문서 시작 부분 근처에 나타나는 용어나 구를 찾을 때 유용합니다.
예를 들어 span_first 쿼리를 사용해 다음 검색을 수행할 수 있어요.
- 특정 용어가 필드의 처음 몇 단어 안에 나타나는 문서 찾기
- 특정 구가 텍스트의 시작 부분이나 그 근처에 오도록 보장하기
- 패턴이 시작 지점부터 지정된 거리 안에 나타날 때만 매치하기
출처: 문서
본문
예제 (Example)
이 섹션의 예제를 실행하려면 설정(setup) 단계를 완료하세요.
다음 쿼리는 description의 처음 4개 위치 안에 나타나는 stemmed 단어 "dress"를 검색해요.
GET /clothing/_search
{
"query": {
"span_first": {
"match": {
"span_term": {
"description.stemmed": "dress"
}
},
"end": 4
}
}
}
이 쿼리는 문서 1과 문서 2를 매치해요.
- 문서 1과 2는 세 번째 위치에 dress라는 단어가 있어요("Long-sleeved dress…"와 "Beautiful long dress"). 단어 인덱싱은 0부터 시작하므로 "dress"라는 단어는 위치 2에 있어요.
- dress라는 단어의 위치는
end파라미터에 지정된 대로 4보다 작아야 해요.
응답:
{
"took": 13,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 0.110377684,
"hits": [
{
"_index": "clothing",
"_id": "1",
"_score": 0.110377684,
"_source": {
"description": "Long-sleeved dress shirt with a formal collar and button cuffs. "
}
},
{
"_index": "clothing",
"_id": "2",
"_score": 0.110377684,
"_source": {
"description": "Beautiful long dress in red silk, perfect for formal events."
}
}
]
}
}
match 파라미터는 모든 유형의 span 쿼리를 포함할 수 있어, 필드 시작 부분에서 더 복잡한 패턴을 매치할 수 있어요.
파라미터 (Parameters)
다음 표는 span_first 쿼리가 지원하는 모든 최상위 파라미터를 나열해요. 모든 파라미터는 필수예요.
- match (Object): 매치할 span 쿼리예요. 필드 시작 부분에서 검색하려는 패턴을 정의해요.
- end (Integer): span 쿼리 일치에 허용되는 최대 끝 위치(배타적)예요. 예를 들어
end: 4는 위치 0~3에 있는 용어를 매치해요.