span_near 쿼리
span_near 쿼리
span_near 쿼리는 서로 가까이 있는 스팬을 매치해요. 스팬이 얼마나 멀리 떨어져 있을 수 있는지, 특정 순서로 나타나야 하는지 지정할 수 있습니다.
예를 들어 span_near 쿼리를 사용해 다음을 할 수 있어요.
- 서로 특정 거리 안에 나타나는 용어 찾기
- 단어가 특정 순서로 나타나는 구 매치하기
- 텍스트에서 서로 가까이 나타나는 관련 개념 찾기
출처: 문서
본문
예제 (Example)
이 섹션의 예제를 실행하려면 설정(setup) 단계를 완료하세요.
다음 쿼리는 "sleeve"와 "long"의 모든 형태가 어떤 순서로든 서로 옆에 나타나는 것을 검색해요.
GET /clothing/_search
{
"query": {
"span_near": {
"clauses": [
{
"span_term": {
"description.stemmed": "sleev"
}
},
{
"span_term": {
"description.stemmed": "long"
}
}
],
"slop": 1,
"in_order": false
}
}
}
이 쿼리는 문서 1("Long-sleeved…")과 문서 4("…long fluttered sleeves…")를 매치해요. 문서 1에서는 단어들이 서로 옆에 있고, 문서 4에서는 지정된 slop 거리 1 안에 있어요(둘 사이에 1개 단어가 있음).
응답:
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 0.36496973,
"hits": [
{
"_index": "clothing",
"_id": "1",
"_score": 0.36496973,
"_source": {
"description": "Long-sleeved dress shirt with a formal collar and button cuffs. "
}
},
{
"_index": "clothing",
"_id": "4",
"_score": 0.25312424,
"_source": {
"description": "A set of two midi silk shirt dresses with long fluttered sleeves in black. "
}
}
]
}
}
파라미터 (Parameters)
다음 표는 span_near 쿼리가 지원하는 모든 최상위 파라미터를 나열해요.
- clauses (span 쿼리 배열): 매치할 용어나 구를 정의하는 span 쿼리 배열이에요. 지정된 모든 용어는 정의된 slop 거리 안에 나타나야 해요. 필수예요.
- slop (Integer): 스팬 사이에 허용되는 중간의 일치하지 않는 최대 위치 수예요. 필수예요.
- in_order (Boolean): 스팬이 clauses 배열과 같은 순서로 나타나야 하는지 여부예요. 선택 사항이며 기본값은
false예요.