일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Java
- licence delete curl
- aggs
- Test
- 차트
- license delete
- Mac
- zip 파일 암호화
- ELASTIC
- token filter test
- matplotlib
- 900gle
- springboot
- analyzer test
- 파이썬
- Kafka
- high level client
- License
- TensorFlow
- API
- aggregation
- Python
- docker
- plugin
- MySQL
- Elasticsearch
- query
- flask
- zip 암호화
- sort
Archives
- Today
- Total
개발잡부
[es] intervals query 본문
반응형
사용자의 검색의도를 정교하게 반영하는(?) 결과를 제공하는 쿼리.. 라고 하는데..
확인 들어간다
POST _bulk
{"index":{"_index":"coo", "_id":"1"}}
{"name":"나이키", "weight" : 1, "boost" : 1, "description" : "나이키 상품"}
{"index":{"_index":"coo", "_id":"2"}}
{"name":"나이키 에이맥스","weight" : 1, "boost" : 1,"description" : "나이키 운동화"}
{"index":{"_index":"coo", "_id":"3"}}
{"name":"나이키 에어조던","weight" : 1, "boost" : 1,"description" : "나이키 운동화 농구화"}
{"index":{"_index":"coo", "_id":"4"}}
{"name":"나이키 에어조단","weight" : 1, "boost" : 1,"description" : "나이키 운동화 농구화"}
{"index":{"_index":"coo", "_id":"5"}}
{"name":"나이키 후드티","weight" : 1, "boost" : 1,"description" : "나이키 의류"}
{"index":{"_index":"coo", "_id":"6"}}
{"name":"나이키 후드집업", "weight" : 1, "boost" : 1,"description" : "나이키 의류 자켓"}
{"index":{"_index":"coo", "_id":"7"}}
{"name":"나이키 후드나시티","weight" : 1, "boost" : 1,"description" : "나이키 의류 속옷"}
{"index":{"_index":"coo", "_id":"8"}}
{"name":"나이키 후드점퍼","weight" : 1, "boost" : 1,"description" : "나이키 의류 자켓"}
{"index":{"_index":"coo", "_id":"9"}}
{"name":"나이키 후드트레이닝","weight" : 1, "boost" : 1,"description" : "나이키 의류"}
{"index":{"_index":"coo", "_id":"10"}}
{"name":"나이키 트레이닝","weight" : 1, "boost" : 1,"description" : "나이키 의류 트레이닝"}
POST coo/_search
{
"query": {
"intervals" : {
"name" : {
"all_of" : {
"ordered" : true,
"intervals" : [
{
"match" : {
"query" : "나이키",
"max_gaps" : 0, // 검색어 토큰 사이의 허용 거리 범위 설정 ( 문서 검색 및 가중치 계산에 영향을 준다.
"ordered" : true // 검색어 토큰 순서가 동일한 문서만 찾을 경우 true로 설정 (기본: false)
}
},
{
"any_of" : {
"intervals" : [
{ "match" : { "query" : "에어조던" } },
{ "match" : { "query" : "후드점퍼" } }
]
}
}
]
}
}
}
}
}
Matching Rule을 원하는 대로 지정할 수 있는 것을 확인할 수 있다.
1. "all_of" 룰(Rule)을 통해서 "match" 룰과 "any_of" 룰이 전부 충족
2. "ordered": true를 지정해서 첫 번째 룰과 두 번째 룰은 꼭 순서대로 매칭
filter 를 추가해서 조건을 정교하게 추가할 수 있다.
음.. 음..
intervals 랑 bool 쿼리랑 비슷한거 같은데..
이런게 있다고 함..
반응형
'ElasticStack > Elasticsearch' 카테고리의 다른 글
[es] 검색쿼리를 만들어 보자 (0) | 2022.01.15 |
---|---|
[es] Bool Query (0) | 2022.01.10 |
[es] Java High Level REST Client (0) | 2022.01.05 |
[es] 자동완성 2 (2) | 2022.01.04 |
[es] 자동완성1 (0) | 2022.01.04 |
Comments